标签:
string nonce_str = Get_GuidStr();//随机字符串 string sign = "";//签名 string mch_id = "100000000";//商户号 string mch_billno = Get_BillNo(mch_id);//商户订单号 string wxappid = "wx8asdfderqweqweqwe2b";//公众账号appid string nick_name = "aa";//提供方名称 string send_name = "aa";//商户名称 string re_openid = "asdfasfwerqweqeqweqe";//用户openid int total_amount = 100;//付款金额(分) int min_value = 100;//最小红包金额 int max_value = 100;//最大红包金额 int total_num = 1;//红包发放总人数 string wishing = "新年新气象,祝您身体健康,万事如意!";//红包祝福语 string client_ip = "114.249.210.173"; //"221.5.252.231";//Ip地址 string act_name = "测试红包功能。";//活动名称 string remark = "测的越多,送的越多。";//备注 string logo_imgurl = "";//商户logo的url string share_content = "";//分享文案 string share_url = "";//分享链接 string share_imgurl = "";//分享的图片<?phpconst API = ‘https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack‘;const MCH_ID = ‘‘;const MCH_SECRET = ‘‘;const APP_KEY = ‘‘;const APP_SECRET = ‘‘;const OPENID = ‘‘;$money = 100;//------------------logic----------------------$params = [ ‘mch_billno‘=>gen_mch_billno(), ‘mch_id‘=>MCH_ID, ‘wxappid‘=>APP_KEY, ‘nick_name‘=>‘xxxxx‘, ‘send_name‘=>‘xxxx‘, ‘re_openid‘=>OPENID, ‘total_amount‘=>$money, ‘min_value‘=>$money, ‘max_value‘=>$money, ‘total_num‘=>1, ‘wishing‘=>‘感谢您参加!‘, ‘client_ip‘=>‘127.0.0.1‘, ‘act_name‘=>‘测试红包‘, ‘act_id‘=>17481, ‘remark‘=>‘备注提示‘, ‘logo_imgurl‘=>‘http://www.sogou.com/images/logo/new/sogou.png‘ , ‘share_url‘=>‘http://xxxx.com‘, ‘share_imgurl‘=>‘http://www.sogou.com/images/logo/new/sogou.png‘, ‘share_content‘=>‘恭喜发财‘, ‘remark‘=>‘新年红包哦~‘, ‘nonce_str‘=>gen_nonce(),];$res = post(API, gen_xml($params), true);var_dump($res);//-----------------func-----------------------function gen_xml($params) { $xml = ‘<xml>‘; $fmt = ‘<%s><![CDATA[%s]]></%s>‘; foreach($params as $key=>$val){ $xml.=sprintf($fmt, $key, $val, $key); } $xml.=‘</xml>‘; return $xml;}function sign($params){ ksort($params); $beSign = array_filter($params, ‘strlen‘); $pairs = array(); foreach ($beSign as $k => $v) { $pairs[] = "$k=$v"; } $sign_data = implode(‘&‘, $pairs); $sign_data.=‘&key=‘.MCH_SECRET; return strtoupper(md5($sign_data));}function gen_nonce(){ return md5(uniqid(‘‘, true));}function gen_mch_billno(){ return MCH_ID.date(‘Ymd‘).time();}function post($url, $strXml, $CA = true) { //$arrHeader[] = ‘Content-Length: ‘ . strlen($strXml); $cacert = __DIR__ . ‘/cacert.pem‘; //CA根证书 $SSL = substr($url, 0, 8) == "https://" ? true : false; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); //curl_setopt($ch, CURLOPT_HTTPHEADER, $arrHeader); if ($SSL && $CA) { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // 只信任CA颁布的证书 curl_setopt($ch, CURLOPT_SSLCERT,__DIR__.‘/apiclient_cert.pem‘); curl_setopt($ch, CURLOPT_SSLKEY,__DIR__.‘/apiclient_key.pem‘); curl_setopt($ch, CURLOPT_CAINFO, $cacert); // CA根证书(用来验证的网站证书是否是CA颁布) curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 检查证书中是否设置域名,并且是否与提供的主机名匹配 } else if ($SSL && !$CA) { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 检查证书中是否设置域名 } curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $strXml); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); $res = curl_exec($ch); curl_close($ch); return $res;}标签:
原文地址:http://www.cnblogs.com/sanwenyu/p/4688935.html