1.第一步
wx.login({
success: function (log) { // 通过微信方法拿到登录的code
that.data.code=log.code //一般登录的时候储存code 或者直接页面拿到,我这里是页面中获取
}
})
2.通过获取到的code调用后端接口拿到后端返回的openid
3.在 .wxml里面处理并拿到金额 如下:
<input bindinput="paymoney" type="digit" value="{{editForm.priceFL}}" placeholder="请输入金额"></input>
在.js里面执行
data: {
openid:'',
paymoney:'',
},
paymoney: function (e) {
var value = e.detail.value;
value = value.replace(/[^\d\.]|^\./g, '').replace(/\.{2}/g, '.').replace(/^([1-9]\d*|0)(\.\d{1,2})(\.|\d{1})?$/, '$1$2').replace(/^0\d{1}/g, '0');
this.setData({
["editForm.priceFL"]: value
})
},
4.把所需要的参数封装到一个对象里面
let zfcode={
openId:that.data.openid, //从后端获取到的 openid
prepaidFee:that.data.editForm.priceFL, // 输入的金额
outTradeName:'xu' // 支付的名称
}
4.把 zfcode 传给后端 获取到微信支付所需要的接口,然后通过微信调取微信支付。ps:(timeStamp、nonceStr、package、signType、paySign 均为后端返回参数)
wx.requestPayment({
"timeStamp":timeStamp,
"nonceStr":nonceStr,
"package": package,
"signType": signType,
"paySign":paySign,
"success":function(res){
if (res.errMsg == 'requestPayment:ok') {
wx.showToast({
title: '支付成功',
icon: 'none',
duration: 2000
})
};
},
"fail":function(res){},
"complete":function(res){}
})