微信支付功能实现

< view class= "container">
< input type= "text" bindinput= "getOrderCode" style= "border:1px solid #ccc;" / >
< button bindtap= "pay">立即支付 </ button >
</ view >

// pages/pay/pay.js
var app = getApp();
Page({
data: {},
onLoad: function (options) {
// 页面初始化 options为页面跳转所带来的参数
},
/* 微信支付 */
wxpay: function () {
var that = this
//登陆获取code
wx.login({
success: function (res) {
console.log(res.code)
//获取openid
that.getOpenId(res.code)
}
});
},
getOpenId: function (code) {
var that = this;
wx.request({
data: {},
method: 'GET',
success: function (res) {
that.generateOrder(res.data.openid)
},
fail: function () {
// fail
},
complete: function () {
// complete
}
})
},
/**生成商户订单 */
generateOrder: function (openid) {
var that = this
//统一支付
wx.request({
method: 'GET',
data: {
total_fee: '5',
body: '支付测试',
attach: '真假酒水'
},
success: function (res) {
var pay = res.data
//发起支付
var timeStamp = pay[ 0].timeStamp;
var packages = pay[ 0].package;
var paySign = pay[ 0].paySign;
var nonceStr = pay[ 0].nonceStr;
var param = { "timeStamp": timeStamp, "package": packages, "paySign": paySign, "signType": "MD5", "nonceStr": nonceStr };
that.pay(param)
},
})
},

/* 支付 */
pay: function (param) {
console.log( "支付")
console.log(param)
wx.requestPayment({
timeStamp: param.timeStamp,
nonceStr: param.nonceStr,
package: param.package,
signType: param.signType,
paySign: param.paySign,
success: function (res) {
// success
wx.navigateBack({
delta: 1, // 回退前 delta(默认为1) 页面
success: function (res) {
wx.showToast({
title: '支付成功',
icon: 'success',
duration: 2000
})
},
fail: function () {
// fail

},
complete: function () {
// complete
}
})
},
fail: function (res) {
// fail
},
complete: function () {
// complete
}
})
}
})


1、小程序微信支付API使用的公众号jssdk的微信支付API,官方文档上有一个参数写错了,就是传的appid中的“I ”必须为大写,不然一直提示参数错误。在这个上面调试好久,希望看到的小伙伴注意下。

猜你喜欢

转载自blog.csdn.net/sunlizhen/article/details/78732135