微信支付

一、微信小程序支付开发步骤

1、统一下单

        1.1、准备参数

        接口链接:https://api.mch.weixin.qq.com/pay/unifiedorder

        需要参数:

                * @param string $appid             小程序ID     
                * @param string $mch_id            商户号     
                * @param string $nonce_str         随机字符串 长度要求32位以内        
                * @param string $sign              签名     
                * @param string $body              商品描述         
                * @param string $out_trade_no      商户订单号         
                * @param string $total_fee            标价金额         
                * @param string $spbill_create_ip  终端IP             
                * @param string $notify_url        通知地址             
                * @param string $trade_type        交易类型

        $nonce_str生成代码:

微信支付_第1张图片

        $sign生成代码: 微信支付_第2张图片

        1.2、参数转xml

        1.3、返回结果(是xml数据,需转为数组)

        return_code和result_code都是SUCCESS表示成功         

        把返回的结果传给客户端

2、支付再次签名

        2.1、接收客户端传来的prepay_id

        2.2、准备参数

                * @param string $appId                 小程序ID     
                * @param string $timeStamp            时间戳     
                * @param string $nonceStr         随机字符串 长度要求32位以内        
                * @param string $package              数据包     
                * @param string $signType              签名方式  

                * @param string $paySign              签名         

        2.3、签名方式同上

        2.4、返回数据

 

3、支付回调

        3.1、获取微信通知的数据

        3.2、验证签名步骤

        1)xml转数组;2)取出返回的签名;3)再次签名算法取出签名后的数据;4)如果取出的签名和再次签名后的数据一致表示支付成功;5)对比返回订单金额和数据库订单金额是否一致

二、微信JSAPI支付开发步骤

开发步骤:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_3

1、统一下单

        1.1、准备参数

        接口链接:https://api.mch.weixin.qq.com/pay/unifiedorder

        需要参数:

                * @param string $appid             小程序ID     
                * @param string $mch_id            商户号     
                * @param string $nonce_str         随机字符串 长度要求32位以内        
                * @param string $sign              签名     
                * @param string $body              商品描述         
                * @param string $out_trade_no      商户订单号         
                * @param string $total_fee            标价金额         
                * @param string $spbill_create_ip  终端IP             
                * @param string $notify_url        通知地址             
                * @param string $trade_type        交易类型

        $nonce_str生成代码:

微信支付_第3张图片

$sign生成代码:

微信支付_第4张图片

1.2、参数转xml

        1.3、返回结果(是xml数据,需转为数组)

        return_code和result_code都是SUCCESS表示成功         

        把返回的结果传给客户端

2、H5页面执行js调起支付

微信支付_第5张图片

3、支付回调

        3.1、获取微信通知的数据

    $xml = file_get_contents("php://input");

        

        3.2、验证签名步骤

        1)xml转数组;2)取出返回的签名;3)再次签名算法取出签名后的数据;4)如果取出的签名和再次签名后的数据一致表示支付成功;5)对比返回订单金额和数据库订单金额是否一致

三、微信H5支付开发步骤

开发步骤:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_3

1、统一下单

        1.1、准备参数

        接口链接:https://api.mch.weixin.qq.com/pay/unifiedorder

        需要参数:

                * @param string $appid             小程序ID     
                * @param string $mch_id            商户号     
                * @param string $nonce_str         随机字符串 长度要求32位以内        
                * @param string $sign              签名     
                * @param string $body              商品描述         
                * @param string $out_trade_no      商户订单号         
                * @param string $total_fee            标价金额         
                * @param string $spbill_create_ip  终端IP             
                * @param string $notify_url        通知地址             
                * @param string $trade_type        交易类型

        $nonce_str生成代码:

微信支付_第6张图片

$sign生成代码:

微信支付_第7张图片

1.2、参数转xml

        1.3、返回结果(是xml数据,需转为数组)

        1.4、通过返回的mweb_url唤起微信支付页面(如果需要设置支付完后的跳转页面,需要在这个参数后面拼接参数,默认返回发起支付的页面)

        2、支付回调

        2.1、获取微信通知的数据

    $xml = file_get_contents("php://input");

        

        2.2、验证签名步骤

        1)xml转数组;2)取出返回的签名;3)再次签名算法取出签名后的数据;4)如果取出的签名和再次签名后的数据一致表示支付成功;5)对比返回订单金额和数据库订单金额是否一致

你可能感兴趣的:(微信支付)