小程序w微信支付功能
1,开通/绑定微信支付商户号
- 申请微信支付,包括微信认证已提供的资料外,你还需要提供以下材料:
2,小程序调用支付流程图
小程序支付接口
支付需要5个参数
timeStamp:时间戳(字符串形式)
nonceStr:随机字符串
package:统一下单的 prepay_id=*
signType:"MD5"
paySign:签名
paySign
注意以下重要规则:
paySign = MD5(appId=小程序APPId&nonceStr=随机字符串&package=prepay_id=支付id&signType=MD5&timeStamp=时间戳&key=商户密钥)
小程序操作步骤(为了安全起见,建议paySign参数也由后端生成):
1,将订单id,类型按照要求传给后台,获取
prepay_id,timeStamp,nonceStr
等数据。
2,将数据封装并MD5化。
let
stringSignTemp =
'appId='
+ payObj.appid +
'&nonceStr='
+ payObj.noncestr +
'&package='
+ payObj.package +
'&signType=MD5&timeStamp='
+ timeStamp +
'&key=qazwsxedcrfvtgbyhnujmikolp111111'
let
paySign = util.hexMD5(stringSignTemp).toUpperCase();
3,调用
wx.requestPayment 支付api
wx.requestPayment({
'timeStamp'
: timeStamp,
'nonceStr'
: payObj.noncestr,
'package'
: payObj.package,
'signType'
:
'MD5'
,
'paySign'
: paySign,
'success'
:
function
(res) {
console.log(res)
},
'fail'
:
function
(res) {
console.log(res)
}
})
附:常用js操作
- randomString: function () {
- var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
- var maxPos = chars.length;
- for (var i = 0; i < 32; i++) {
- pwd += chars.charAt(Math.floor(Math.random() * maxPos));
- createTimeStamp: function () {
- return parseInt(new Date().getTime() / 1000) + ''