微信小程序支付接口调用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lrq112233/article/details/75041664
// 获取随机数
        $cdcode = ...
        $pattern = '...............................................';  
        $key = '';
        for($i=0;$i< 16; $i++)  
        {   
            $key .= ...
        }   
        $nonce_str = $cdcode . $key;
        //获取ip
        $ip = ...
        $total_fee = $total_price * 100;
        //获取签名
        $stringA="appid=....&attach=aa&body=aa&mch_id=...&nonce_str=".$nonce_str."&notify_url=....&openid=".$openid."&out_trade_no=".$order_number."&spbill_create_ip=".$ip."&total_fee=".$total_fee."&trade_type=JSAPI";


        $stringSignTemp= $stringA."&key=...";
        $sign=MD5($stringSignTemp);
        $sign = strtoupper($sign);


        $curlPost = '<xml>
                       <appid>...</appid>
                       <attach>aa</attach>
                       <body>aa</body>
                       <mch_id>...</mch_id>
                       <nonce_str>'.$nonce_str.'</nonce_str>
                       <notify_url>...</notify_url>
                       <openid>'.$openid.'</openid>
                       <out_trade_no>'.$order_number.'</out_trade_no>
                       <spbill_create_ip>'.$ip.'</spbill_create_ip>
                       <total_fee>'.$total_fee.'</total_fee>
                       <trade_type>JSAPI</trade_type>
                       <sign>'.$sign.'</sign>
                    </xml>';
        // 2、使用 curl_init()函数初始化一个CURL会话,初始化成功后返回一个句柄供curl_setopt(), curl_exec(),和 curl_close() 函数使用
        $curl = curl_init();
        // 3、使用curl_setopt()设置要获取的URL地址
        $url='https://api.mch.weixin.qq.com/pay/unifiedorder';
        curl_setopt($curl, CURLOPT_URL, $url);
        // 4、设置是否输出header
        curl_setopt($curl, CURLOPT_HEADER, 0);
        // 5、设置是否输出结果
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        // 3.声明为POST请求
        curl_setopt($curl , CURLOPT_POST , 1);
        //传递数据
        curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
        // 7、设置是否检查服务器端的证书
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        // 8、使用curl_exec()将CURL返回的结果转换成正常数据并保存到一个变量
        $data = curl_exec($curl);
        // echo $data;


        $xml = simplexml_load_string($data ,'SimpleXMLElement', LIBXML_NOCDATA);
        $json = json_encode($xml);

        $data = json_decode($json);
        //获取返回数据
        $prepay_id = '';
        foreach ($data as $key => $val){
            if ($key == 'prepay_id') {
                $prepay_id = $val;
            }
        }


        // 获取随机数
        $cdcode = ...;
        $pattern = '.........................................';  
        $key = '';
        for($i=0;$i< 16; $i++)  
        {   
            $key .= ...; 
        }   
        $nonceStr = ...;


        //获取时间戳
        $timeStamp = time();
        //获取paysign
        $pay_sign_string = "appId=...&nonceStr=".$nonceStr."&package=prepay_id=".$prepay_id."&signType=MD5&timeStamp=".$timeStamp;
      
        $pay_sign_string = $pay_sign_string.'&key=....';
        $paySign = MD5($pay_sign_string);

$list = [];

...接收

返回前台接口需要数据

        $list['order_number'] = $order_number;


        $list = json_encode($list);

        print_r($list);



前台页面接收 调用wx.payment...

展开阅读全文

没有更多推荐了,返回首页