快速创建一个网站,网页设计规划书样本,24小时网站开发 pdf,致远oa系统发布时间#xff1a;2015年2月25日 / 分类#xff1a;WEB开发,PHP / 74,825 / 241 ℃ 根据微信高级红包接口#xff0c;开发PHP版本的API接口#xff0c;现在进行主要代码分析。 红包接口调用请求代码#xff0c;所有请求参数为必填参数与文档对应#xff1a; 1234567891…发布时间2015年2月25日 / 分类WEB开发,PHP / 74,825 / 241 ℃ 根据微信高级红包接口开发PHP版本的API接口现在进行主要代码分析。 红包接口调用请求代码所有请求参数为必填参数与文档对应 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 class Wxapi { private $app_id wxXXXXXXXXXXXX; //公众账号appid首先申请与之配套的公众账号 private $app_secret XXXXXXXXXXXXXXXXXXXXXXXX;//公众号secret用户获取用户授权token private $app_mchid XXXXXXXX;//商户号id function __construct(){ //do sth here.... } /** * 微信支付 * param string $openid 用户openid */ public function pay($re_openid) { include_once(WxHongBaoHelper.php); $commonUtil new CommonUtil(); $wxHongBaoHelper new WxHongBaoHelper(); $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(nick_name, 红包);//提供方名称 $wxHongBaoHelper-setParameter(send_name, 红包);//红包发送者名称 $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, 感谢您参与红包派发活动祝您新年快乐);//红包祝福诧 $wxHongBaoHelper-setParameter(client_ip, 127.0.0.1);//调用接口的机器 Ip 地址 $wxHongBaoHelper-setParameter(act_name, 红包活动);//活劢名称 $wxHongBaoHelper-setParameter(remark, 快来抢);//备注信息 $postXml $wxHongBaoHelper-create_hongbao_xml(); $url https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack; $responseXml $wxHongBaoHelper-curl_post_ssl($url, $postXml); //用作结果调试输出 //echo htmlentities($responseXml,ENT_COMPAT,UTF-8); $responseObj simplexml_load_string($responseXml, SimpleXMLElement, LIBXML_NOCDATA); return $responseObj-return_code; } 获取随机字符串方法 1 2 3 4 5 6 7 8 9 10 11 /** * 生成随机数 */ public function great_rand(){ $str 1234567890abcdefghijklmnopqrstuvwxyz; for($i0;$i30;$i){ $jrand(0,35); $t1 . $str[$j]; } return $t1; } 签名算法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 /** 例如 appid wxd111665abv58f4f mch_id 10000100 device_info 1000 Body test nonce_str ibuaiVcKdpRxkhJA 第一步对参数按照 keyvalue 的格式并按照参数名 ASCII 字典序排序如下 stringAappidwxd930ea5d5a258f4fbodytestdevice_info1000mch_i d10000100nonce_stribuaiVcKdpRxkhJA; 第二步拼接支付密钥 stringSignTempstringAkey192006250b4c09247ec02edce69f6a2d signMD5(stringSignTemp).toUpperCase()9A0A8659F005D6984697E2CA0A 9CF3B7 */ protected function get_sign(){ define(PARTNERKEY,QSRXXXXXXXXXXXXXXXXXXXXX); try { if (null PARTNERKEY || PARTNERKEY ) { throw new SDKRuntimeException(密钥不能为空 . br); } if($this-check_sign_parameters() false) { //检查生成签名参数 throw new SDKRuntimeException(生成签名参数缺失 . br); } $commonUtil new CommonUtil(); ksort($this-parameters); $unSignParaString $commonUtil-formatQueryParaMap($this-parameters, false); $md5SignUtil new MD5SignUtil(); return $md5SignUtil-sign($unSignParaString,$commonUtil-trimString(PARTNERKEY)); }catch (SDKRuntimeException $e) { die($e-errorMessage()); } } CURL请求以及发送证书 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 function curl_post_ssl($url, $vars, $second30,$aHeaderarray()) { $ch curl_init(); //超时时间 curl_setopt($ch,CURLOPT_TIMEOUT,$second); curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1); //这里设置代理如果有的话 curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false); //cert 与 key 分别属于两个.pem文件 //请确保您的libcurl版本是否支持双向认证版本高于7.20.1 curl_setopt($ch,CURLOPT_SSLCERT,dirname(__FILE__).DIRECTORY_SEPARATOR.zhengshu.DIRECTORY_SEPARATOR.apiclient_cert.pem); curl_setopt($ch,CURLOPT_SSLKEY,dirname(__FILE__).DIRECTORY_SEPARATOR.zhengshu.DIRECTORY_SEPARATOR.apiclient_key.pem); curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).DIRECTORY_SEPARATOR.zhengshu.DIRECTORY_SEPARATOR.rootca.pem); if( count($aHeader) 1 ){ curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader); } curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_POSTFIELDS,$vars); $data curl_exec($ch); if($data){ curl_close($ch); return $data; } else { $error curl_errno($ch); //echo call faild, errorCode:$error\n; curl_close($ch); return false; } } 入口文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 require pay.php; //获取用户信息 $get $_GET[param]; $code $_GET[code]; //判断code是否存在 if($getaccess_token !empty($code)){ $param[param] access_token; $param[code] $code; $packet new Packet(); //获取用户openid信息 $userinfo $packet-_route(userinfo,$param); if(empty($userinfo[openid])){ exit(NOAUTH); } //调取支付方法 $packet-_route(wxpacket,array(openid$userinfo[openid])); }else{ $packet-_route(userinfo); } 开发所需文档 1官方红包高级接口文档 2官方公众平台获取用户基本信息接口文档 3商户平台开发文档 源码下载 链接http://pan.baidu.com/s/1o6Nvoi2 密码acjp 转载于:https://www.cnblogs.com/yxmaomao/p/5338875.html