微信小程序—微信小程序端支付功能


1.小程序初始化登录接口根据code值获取oppenid(后台获取)

官方获取oppenid参考链接:https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html

app.js代码:

//app.js

wx.login({
success: function (res) {
var that = this;
if (res.code) {
//console.log(res.code)
wx.request({
//根据code 获取openid 接口
url: getApp().globalData.hostRoot,     //假的url
data: {
controller: 'xiaochengxu',             //假的参数
act: 'getAppid',                       //假设参数
code: res.code,   
},
success: function (res) {
console.log(res.data);
if (res.data.code == 0) {
return;
}
getApp().globalData.openid = res.data.result.wxopenid.openid;     //把从后台获取到的oppenid保存到本地和全局 作为用户唯一标志
wx.setStorageSync('openid', res.data.result.wxopenid.openid);
}
});

}
else {
//console.log('登录失败!' + res.errMsg)
}
}
})


2.生成商户订单并调用微信支付

官方调用微信支付链接https://developers.weixin.qq.com/miniprogram/dev/api/api-pay.html#wxrequestpaymentobject

支付页面代码:

//pay.js

/**生成商户订单 */
tapWxPay: function () {
var that = this;
wx.request({
url: getApp().globalData.hostRoot,     //后台路径
data: {                                //后台参数 具体根据后台提供接口来写
controller: 'xiaochengxu',             
act: 'shengchengPay',
openid: getApp().globalData.openid,    //openid   (必传参数,其他参数根据后台要求)
id_order: that.data.id_order,                        //订单前一个页面传递过来的订单号
pay_way: '5',                                       //微信支付
cash: that.data.amount,                           //额度
},
success: function (res) {

if (res.data.code == 0) {              //如果后台返回code为0代表支付错误并弹出提示信息
wx.showModal({
title: '支付错误',
content: res.data.message,
})
return;
}

var pay = res.data.result.weixin_query;       

//成功时调用微信的支付接口    根据生成商户订单返回的时间戳 随机字符串 prepay_id 等参数  
wx.requestPayment({
'timeStamp': pay.timeStamp + '',              //时间戳
'nonceStr': pay.nonceStr,                          //随机字符串
'package': pay.packageValue,                  //统一下单接口返回的 prepay_id 参数值
'signType': pay.signType,                         //签名类型,默认为MD5
'paySign': pay.sign,                                  //签名

'success': function (res) {                         //支付成功跳转到支付成功页面
wx.redirectTo({
url: '/pages/payresult/payresult?' + 'id_order=' + that.data.id_order,
success: function (res) {
wx.showToast({
title: '支付成功',
icon: 'success',
})
},
fail: function () {                             //失败则显示支付失败
wx.showToast({
title: '支付失败',
icon: 'none',
image: '../image/faild.png',
})
},
complete: function () {
// complete
}
})
},


'fail': function (res) {

},

})
},
})
},

微信小程序微信支付官方开发文档:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_10&index=1


你可能感兴趣的:(微信小程序)