php微信H5支付

1、首先到微信商户平台开通H5,如下图




此产品在公司是已经开通,如果你未开通,可以按照所需要的资料填写,然后到开发配置添加域名,域名必须是备案通过的

接下来直接给大家上代码了

$money= 1;//充值金额
 function http_post($url, $data) {
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL,$url);
     curl_setopt($ch, CURLOPT_HEADER,0);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($ch, CURLOPT_POST, 1);
     curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
     $res = curl_exec($ch);
     curl_close($ch);
     return $res;
 }
 $userip = $_SERVER["REMOTE_ADDR"]; //获得用户设备IP 自己网上百度去
 $appid = "ggg";//微信给的
 $mch_id = "fff";//微信官方的x
 $key = "kkkk";//自己设置的微信商家key

 $rand = rand(00000,99999);
 $out_trade_no = '20170804'.$rand;//平台内部订单号
 $nonce_str=MD5($out_trade_no);//随机字符串
 $body = "微信H5支付";//内容
 $total_fee = $money; //金额
 $spbill_create_ip = $userip; //IP
 $notify_url = "http://www.erdangjiade.com/"; //回调地址
 $trade_type = 'MWEB';//交易类型 具体看API 里面有详细介绍
 $scene_info ='{"h5_info":{"type":"Wap","wap_url":"http://www.erdangjiade.com","wap_name":"微信H5支付"}}';//场景信息 必要参数

 $signA ="appid=$appid&body=$body&mch_id=$mch_id&nonce_str=$nonce_str&notify_url=$notify_url&out_trade_no=$out_trade_no&scene_info=$scene_info&spbill_create_ip=$spbill_create_ip&total_fee=$total_fee&trade_type=$trade_type";

 $strSignTmp = $signA."&key=$key"; //拼接字符串  注意顺序微信有个测试网址 顺序按照他的来 直接点下面的校正测试 包括下面XML  是否正确
 $sign = strtoupper(MD5($strSignTmp)); // MD5 后转换成大写
 $post_data = "<xml>
                 <appid>$appid</appid>
                 <body>$body</body>
                 <mch_id>$mch_id</mch_id>
                 <nonce_str>$nonce_str</nonce_str>
                 <notify_url>$notify_url</notify_url>
                 <out_trade_no>$out_trade_no</out_trade_no>
                 <scene_info>$scene_info</scene_info>
                 <spbill_create_ip>$spbill_create_ip</spbill_create_ip>
                 <total_fee>$total_fee</total_fee>
                 <trade_type>$trade_type</trade_type>
                 <sign>$sign</sign>
             </xml>";//拼接成XML 格式
 $url = "https://api.mch.weixin.qq.com/pay/unifiedorder";//微信传参地址
 $dataxml = http_post($url,$post_data); //后台POST微信传参地址  同时取得微信返回的参数    POST 方法我写下面了
 $objectxml = (array)simplexml_load_string($dataxml, 'SimpleXMLElement', LIBXML_NOCDATA); //将微信返回的XML 转换成数组
 echo "<pre>";
 echo <class="btn-green" id="getBrandWCPayRequests" href="<?php echo $objectxml['mweb_url'];?>">测试H5支付</a>;
 echo '<hr>';

其他常见错误,请参考:https://www.cnblogs.com/memor-y/p/7553837.html





猜你喜欢

转载自blog.csdn.net/weixin_39801446/article/details/79768607