小程序支付(纯前端)
小程序支付
前期准备:
1、小程序内调用登录接口,获取到用户的openid 方法见:【小程序登录API】 2、调用商户服务器支付统一下单接口,进行预支付(后台) 3、调用商户服务器再次签名接口,返回支付数据 4、小程序内完成支付,商户服务器接收支付回调通知。
wx.requestPayment({
timeStamp: preData.timeStamp+"",
nonceStr: preData.nonceStr,
package: preData.package+"",
signType: MD5,
paySign: preData.paySign,
success(res) {
console.log(支付成功);
},
fail(res) {
console.log(支付失败);
return;
},
complete: function (res) {
console.log(支付完成);
if (res.errMsg == requestPayment:ok) {
wx.showModal({
title: 提示,
content: 购买成功
});
}
return;
}
})
BUG总结
- 商户号未与小程序绑定
- 通知地址不是https类型
- 交易类型没指定为JSAPI
- 订单号重复
- 参数错误,会返回调用支付jsapi缺少参数:total_fee,此时与签名没关系,需要检查方法参数,随机字符串和package对应的参数值,还有就是,下预订单使用的用户openid和拉起支付的用户,必须是同一个,不然会报错,我就是遇到这个错误。
