介绍
这篇文章将为大家详细讲解有关如何实现PHP微信红包API接口的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
首先给大家看一看这个表格:
相关学习推荐:PHP编程(视频)
引用>
根据微信高级红包接口,开发PHP版本的API接口,现在进行主要代码分析。
红包接口调用请求代码,所有请求参数为必填参数与文档对应:
类Wxapi { 私人$ app_id=& # 39; wxXXXXXXXXXXXX& # 39;;//公众账号appid,首先申请与之配套的公众账号 私人$ app_secret=& # 39; XXXXXXXXXXXXXXXXXXXXXXXX& # 39;;//公众号秘密,用户获取用户授权令牌 私人$ app_mchid=& # 39; XXXXXXXX& # 39;;//商户号id 函数__construct () {//在这里做某事.... }/* * *微信支付 * @param字符串$ openid用户openid */公共函数(re_openid美元)支付 { include_once (& # 39; WxHongBaoHelper.php& # 39;); 美元commonUtil=new commonUtil (); 美元wxHongBaoHelper=new wxHongBaoHelper (); 美元wxHongBaoHelper→setParameter (“nonce_str",这→美元great_rand());//随机字符串,丌长于32位 美元wxHongBaoHelper→setParameter (“mch_billno",这→美元app_mchid.date (& # 39; YmdHis& # 39;)。兰特(1000、9999));//订单号 美元wxHongBaoHelper→setParameter (“mch_id",这→美元app_mchid);//商户号 美元wxHongBaoHelper→setParameter (“wxappid",这→美元app_id); 美元wxHongBaoHelper→setParameter (“nick_name" & # 39;红包& # 39;);//提供方名称 美元wxHongBaoHelper→setParameter (“send_name" & # 39;红包& # 39;);//红包发送者名称 美元wxHongBaoHelper→setParameter (“re_openid", re_openid美元);//相对于医脉互通的openid 美元wxHongBaoHelper→setParameter (“total_amount", 100);//付款金额,单位分 美元wxHongBaoHelper→setParameter (“min_value", 100);//最小红包金额,单位分 美元wxHongBaoHelper→setParameter (“max_value", 100);//最大红包金额,单位分 美元wxHongBaoHelper→setParameter (“total_num" 1);//红包収放总人数 美元wxHongBaoHelper→setParameter (“wishing" & # 39;感谢您参与红包派发活动,祝您新年快乐! & # 39;);//红包祝福诧 美元wxHongBaoHelper→setParameter (“client_ip" & # 39; 127.0.0.1 # 39;);//调用接口的机器Ip地址 美元wxHongBaoHelper→setParameter (“act_name" & # 39;红包活动& # 39;);//活劢名称 美元wxHongBaoHelper→setParameter (“remark" & # 39;快来抢! & # 39;);//备注信息 postXml=wxHongBaoHelper→美元create_hongbao_xml (); $ url=& # 39; https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack& # 39;; responseXml=wxHongBaoHelper→美元curl_post_ssl (url, postXml美元);//用作结果调试输出//echo htmlentities ($ responseXml ENT_COMPAT & # 39; utf - 8 # 39;); $ responseObj=simplexml_load_string (responseXml美元,& # 39;simplexmlelement # 39;, LIBXML_NOCDATA); 返回$ responseObj→return_code; }<强>获取随机字符串方法:强>
/* * *生成随机数 */公共函数great_rand () { $ str=& # 39; 1234567890 abcdefghijklmnopqrstuvwxyz& # 39;; (我=0;i<美元;30美元我+ +){ $ j=兰德(0,35); t1。=str美元美元[j]; } 返回$ t1; }<>强签名算法:强>
/* * 例如: appid: wxd111665abv58f4f mch_id: 10000100 device_info: 1000 身体:测试 nonce_str: ibuaiVcKdpRxkhJA 第一步:对参数按照键=值的格式,并按照参数名ASCII字典序排序如下: stringA=癮ppid=wxd930ea5d5a258f4f&身体=test& device_info=1000, mch_i d=10000100, nonce_str=ibuaiVcKdpRxkhJA"; 第二步:拼接支付密钥: stringSignTemp=皊tringA&关键=192006250 b4c09247ec02edce69f6a2d" 符号=MD5 (stringSignTemp) .toUpperCase ()=? a0a8659f005d6984697e2ca0a 9 cf3b7" */保护功能get_sign () { 定义(& # 39;PARTNERKEY& # 39;,“QSRXXXXXXXXXXXXXXXXXXXXX"); 尝试{ 如果(null==PARTNERKEY | |““==PARTNERKEY) { 把新的SDKRuntimeException(“密钥不能为空!“。“& lt; br>“); } if ($ this→check_sign_parameters ()==false){//检查生成签名参数 把新的SDKRuntimeException(“生成签名参数缺失!“。“& lt; br>“); } 美元commonUtil=new commonUtil (); ksort ($ this→参数); unSignParaString=commonUtil→美元formatQueryParaMap ($ this→参数错误); 美元md5SignUtil=new md5SignUtil (); 返回md5SignUtil→美元符号($ unSignParaString, commonUtil→美元trimString (PARTNERKEY)); }捕捉(SDKRuntimeException $ e) { 死($ e→errorMessage ()); } }如何实现PHP微信红包API接口的方法