后台对接微信支付中所需要做的一些流程
小程序中调用微信支付
wx.requestPayment({
timeStamp : '', // 时间戳,必填(后台传回)
nonceStr : '', // 随机字符串,必填(后台传回)
package : '', // 统一下单接口返回的 prepay_id 参数值,必填(后台传回)
signType : 'MD5', // 签名算法,非必填,(预先约定或者后台传回)
paySign : '', // 签名 ,必填 (后台传回)
success:function(res){ // 成功后的回调函数
// do something
}
})
小程序请求后台提供的下单接口 传递商品id,商品描述body,总金额total_fee等
后台接收到请求参数
小程序得到支付的参数,发起支付
微信支付及其后台处理,请求我们后台预留的回调接口
后台回调接口在接收到回调请求时,对订单进行后续处理
$arr = [
'appid' => $appid,
'body' => $body,
'mch_id' => $mch_id,
'nonce_str' => $nonce_str,
'notify_url' => $notify_url,
'openid' => $openid,
'out_trade_no' => $out_trade_no,
'spbill_create_ip' => $spbill_create_ip,
'total_fee' => $total_fee,
'trade_type' => 'JSAPI'
]
$str = 'appid=$appid&body=$body&mch_id=$mch_id&nonce_str=$nonce_str¬ify_url=$notify_url&openid=$openid&out_trade_no=$out_trade_no&spbill_create=$spbill_create&total_fee=$total_fee&trade_type=JSAPI&key=$key'
$sign = md5(str);
$newarr = [
'appId' => $this->appid, // 小程序ID
'timeStamp' => '', // 新生成一个时间戳
'nonceStr' => $this->createNoncestr(), // 随机字符串
'package' => 'prepay_id=' . $unifiedorder['prepay_id'], // 微信后台返回的数据包
'signType' => 'MD5'
]
image.png
https://api.weixin.qq.com/sns/jscode2session?appid=********&secret=********&js_code=********&grant_type=authorization_code