微信小程序支付的坑
微信小程序支付和APP支付还是不一样的,有几个注意点要说明:
APPID 的不同
小程序支付的APPID 就是小程序的APPID(公众平台),不需要绑定开放平台 APP支付的APPID为开放平台的APPID,这一定需要注意
统一下单的不同
小程序使用的JSAPI方式统一下单,APP使用的是APP方式统一下单,尽管统一下单的接口url一样,但是参数不一样,JSAPI方式必须添加openid参数。
返回前端数据的不同
APP支付返回前端的是orderinfo对象,小程序支付返回的对象五个数据:timeStamp,nonceStr,package,signType paySign 注意大小写 signType 必须是MD5,在做paySign签名的时候,需要6个参数,上述5个参数去掉paySign(不参与签名)加上appId(注意大写I,这是个大坑,这个错了签名必然失败)。package参数必须prepay_id=xxxxx的这种形式
python 参考代码如下:
request_order_info = {'appId': params_dict['appid'],
'package': 'prepay_id=' + prepay_id,
'signType': params_dict['sign_type'],
'nonceStr': generate_nonce_str(),
'timeStamp': str(int(time.time()))}
request_order_info['paySign'] = generate_sign(request_order_info)
return request_order_info
前端唤起支付的不同
APP 是通过orderInfo唤起支付,小程序需要几个参数:示例代码如下:
vuni.requestPayment({
provider: 'wxpay',
orderInfo: '',
timeStamp: orderInfo.timeStamp,
nonceStr: orderInfo.nonceStr,
package: orderInfo.package,
signType: orderInfo.signType,
paySign: orderInfo.paySign,
success: e => {
},
fail: e => {
},
complete: () => {}
});
文档信息
版权声明:可自由转载(请注明转载出处)-非商用-非衍生
发表时间:2023年3月10日 20:48