微信红包
2018-01-02 15:41
169 查看
注:WxHb包自己去官网下载最新的,包括证书等等,设置好访问ip,还有最重要你已经申请成功红包功能,因为需要支付流水和九十天,微信限制的
<?php
namespace Index\Controller;
use Think\Controller;
use Index\Lib\Hb\WxHb;
class HbController extends Controller {
private $app_id = ""; //微信AppID
private $app_secret = ""; //微信AppSecret
private $app_mchid = ""; //商户号
private $api_key = ""; //商户支付密钥Key
// // 微信发送红包
public function SendHb() {
// include_once ('./WeixinRedPacket/WxHongBaoHelper.php');
// //测试的OpenID
$re_openid = "oaWZ5s1kjrtJ7RdYcmALZg8QSwpk";
// //红包金额单位是分所以得乘以100
$price = $50 * 100;
//组装数据
$wxHongBaoHelper = new WxHb();
$wxHongBaoHelper->setParameter ( "nonce_str", $this->great_rand () ); //随机字符串,丌长于 32 位
$wxHongBaoHelper->setParameter ( "mch_billno", $this->app_mchid . date ( 'YmdHis' ) . rand ( 1000, 9999 ) ); //订单号
$wxHongBaoHelper->setParameter ( "mch_id", $this->app_mchid ); //商户号
$wxHongBaoHelper->setParameter ( "wxappid", $this->app_id );
$wxHongBaoHelper->setParameter ( "send_name", '今日重庆' ); //红包发送者名称
$wxHongBaoHelper->setParameter ( "re_openid", $re_openid ); //相对于医脉互通的openid
$wxHongBaoHelper->setParameter ( "total_amount", $price ); //付款金额,单位分
$wxHongBaoHelper->setParameter ( "total_num", 1 ); //红包収放总人数
$wxHongBaoHelper->setParameter ( "wishing", '猴年吉祥' ); //红包祝福语
$wxHongBaoHelper->setParameter ( "client_ip", '219.153.65.50' ); //调用接口的机器 Ip 地址
$wxHongBaoHelper->setParameter ( "act_name", '重报集团' ); //活劢名称
$wxHongBaoHelper->setParameter ( "remark", '新年快乐!' ); //备注信息
//生成xml并且生成签名
$postXml = $wxHongBaoHelper->create_hongbao_xml ( $this->api_key );
//var_dump ( $postXml );
//exit;
//提交请求
$url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';
$responseXml = $wxHongBaoHelper->curl_post_ssl ( $url, $postXml );
$responseObj = simplexml_load_string ( $responseXml, 'SimpleXMLElement', LIBXML_NOCDATA );
//转换成数组
$responseArr = ( array ) $responseObj;
$return_code = $responseArr ['return_code'];
$result_code = $responseArr ['result_code'];
//判断是否红包是否发送成功
if ($return_code == "SUCCESS" && $result_code == "SUCCESS") {
dump ( $responseArr );
echo "SUCCESS";
} else {
echo "发送失败";
dump ( $responseArr );
}
}
//获取随机数
private function great_rand() {
$str = '1234567890abcdefghijklmnopqrstuvwxyz';
for($i = 0; $i < 30; $i ++) {
$j = rand ( 0, 35 );
$t1 .= $str [$j];
}
return $t1;
}
}
<?php
namespace Index\Controller;
use Think\Controller;
use Index\Lib\Hb\WxHb;
class HbController extends Controller {
private $app_id = ""; //微信AppID
private $app_secret = ""; //微信AppSecret
private $app_mchid = ""; //商户号
private $api_key = ""; //商户支付密钥Key
// // 微信发送红包
public function SendHb() {
// include_once ('./WeixinRedPacket/WxHongBaoHelper.php');
// //测试的OpenID
$re_openid = "oaWZ5s1kjrtJ7RdYcmALZg8QSwpk";
// //红包金额单位是分所以得乘以100
$price = $50 * 100;
//组装数据
$wxHongBaoHelper = new WxHb();
$wxHongBaoHelper->setParameter ( "nonce_str", $this->great_rand () ); //随机字符串,丌长于 32 位
$wxHongBaoHelper->setParameter ( "mch_billno", $this->app_mchid . date ( 'YmdHis' ) . rand ( 1000, 9999 ) ); //订单号
$wxHongBaoHelper->setParameter ( "mch_id", $this->app_mchid ); //商户号
$wxHongBaoHelper->setParameter ( "wxappid", $this->app_id );
$wxHongBaoHelper->setParameter ( "send_name", '今日重庆' ); //红包发送者名称
$wxHongBaoHelper->setParameter ( "re_openid", $re_openid ); //相对于医脉互通的openid
$wxHongBaoHelper->setParameter ( "total_amount", $price ); //付款金额,单位分
$wxHongBaoHelper->setParameter ( "total_num", 1 ); //红包収放总人数
$wxHongBaoHelper->setParameter ( "wishing", '猴年吉祥' ); //红包祝福语
$wxHongBaoHelper->setParameter ( "client_ip", '219.153.65.50' ); //调用接口的机器 Ip 地址
$wxHongBaoHelper->setParameter ( "act_name", '重报集团' ); //活劢名称
$wxHongBaoHelper->setParameter ( "remark", '新年快乐!' ); //备注信息
//生成xml并且生成签名
$postXml = $wxHongBaoHelper->create_hongbao_xml ( $this->api_key );
//var_dump ( $postXml );
//exit;
//提交请求
$url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';
$responseXml = $wxHongBaoHelper->curl_post_ssl ( $url, $postXml );
$responseObj = simplexml_load_string ( $responseXml, 'SimpleXMLElement', LIBXML_NOCDATA );
//转换成数组
$responseArr = ( array ) $responseObj;
$return_code = $responseArr ['return_code'];
$result_code = $responseArr ['result_code'];
//判断是否红包是否发送成功
if ($return_code == "SUCCESS" && $result_code == "SUCCESS") {
dump ( $responseArr );
echo "SUCCESS";
} else {
echo "发送失败";
dump ( $responseArr );
}
}
//获取随机数
private function great_rand() {
$str = '1234567890abcdefghijklmnopqrstuvwxyz';
for($i = 0; $i < 30; $i ++) {
$j = rand ( 0, 35 );
$t1 .= $str [$j];
}
return $t1;
}
}
相关文章推荐
- 微信红包算法获取若干随机数总和为固定值
- 算法与数据结构——算法题 21:微信红包(2016腾讯校招笔试题) ? 待解决
- 代码笔记 | 微信红包算法
- 连年的红包大战,微信、支付宝先后实现了“从0到1”
- 微信红包算法讨论
- 微信红包技术分析
- Java仿实现微信红包分配算法
- 模仿微信红包模糊照片
- 微信普通商户红包接口生成签名Java实现
- 谈谈微信红包海量运营--发10亿个红包难在哪里?
- 2016校招真题编程练习——微信红包(腾讯)
- 浅谈微信红包摇一摇的技术实现
- 从微信红包的数据解读说起
- 忘记微信红包吧,颠覆的路并不好走!
- 微信红包发送规则
- 绝招!不用外挂也能最快的抢到微信红包
- 微信红包系统设计分享 | 如何扛住100亿次请求
- Python版微信红包分配算法
- 微信抢红包源码
- iOS开发之微信自动抢红包功能