微信小程序—支付功能
只提供微信小程序端代码
var app = getApp();
Page({
data:{},
onLoad:function(options){
// 页面初始化 options为页面跳转所带来的参数
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({
url:"https://api.weixin.qq.com/sns/jscode2session?appid=小程序appid&secret=小程序应用密钥&js_code="+ code +"&grant_type=authorization_code",
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({
url:'后台路径',
method:'GET',
data:{
gfee:'商品价钱',
gname:'商品名称',
openId:openid
(商品价钱和商品名称根据自身需要是否传值,openid为必传)
},
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
}
})
}
})