Maison  >  Article  >  développement back-end  >  PHP implémente le code de l'enveloppe rouge WeChat

PHP implémente le code de l'enveloppe rouge WeChat

小云云
小云云original
2018-03-16 14:06:003839parcourir

本文主要和大家分享php实现微信红包代码,希望能帮助到大家。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 (&#39;./WeixinRedPacket/WxHongBaoHelper.php&#39;);
		// //测试的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 ( &#39;YmdHis&#39; ) . rand ( 1000, 9999 ) ); //订单号
		$wxHongBaoHelper->setParameter ( "mch_id", $this->app_mchid ); //商户号
		$wxHongBaoHelper->setParameter ( "wxappid", $this->app_id );
		$wxHongBaoHelper->setParameter ( "send_name", &#39;今日重庆&#39; ); //红包发送者名称
		$wxHongBaoHelper->setParameter ( "re_openid", $re_openid ); //相对于医脉互通的openid
		$wxHongBaoHelper->setParameter ( "total_amount", $price ); //付款金额,单位分
		$wxHongBaoHelper->setParameter ( "total_num", 1 ); //红包収放总人数
		$wxHongBaoHelper->setParameter ( "wishing", &#39;猴年吉祥&#39; ); //红包祝福语
		$wxHongBaoHelper->setParameter ( "client_ip", &#39;219.153.65.50&#39; ); //调用接口的机器 Ip 地址
		$wxHongBaoHelper->setParameter ( "act_name", &#39;重报集团&#39; ); //活劢名称
		$wxHongBaoHelper->setParameter ( "remark", &#39;新年快乐!&#39; ); //备注信息
		//生成xml并且生成签名
		$postXml = $wxHongBaoHelper->create_hongbao_xml ( $this->api_key );
		//var_dump ( $postXml );
		//exit;
		//提交请求
		$url = &#39;https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack&#39;;
		$responseXml = $wxHongBaoHelper->curl_post_ssl ( $url, $postXml );
		$responseObj = simplexml_load_string ( $responseXml, &#39;SimpleXMLElement&#39;, LIBXML_NOCDATA );
		//转换成数组
		$responseArr = ( array ) $responseObj;
		
		$return_code = $responseArr [&#39;return_code&#39;];
		$result_code = $responseArr [&#39;result_code&#39;];
		//判断是否红包是否发送成功
		if ($return_code == "SUCCESS" && $result_code == "SUCCESS") {
			dump ( $responseArr );
			echo "SUCCESS";
		} else {
			echo "发送失败";
			dump ( $responseArr );
		}
	
	}
	//获取随机数
	private function great_rand() {
		$str = &#39;1234567890abcdefghijklmnopqrstuvwxyz&#39;;
		for($i = 0; $i < 30; $i ++) {
			$j = rand ( 0, 35 );
			$t1 .= $str [$j];
		}
		return $t1;
	}


}

相关推荐:

PHP开发微信红包功能的代码分享

PHP微信红包实现代码介绍

微信红包随机生成算法php版_php实例

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn