微信小程序 支付功能(前端)的实现
微信小程序支付功能(前端)的实现
只提供微信小程序端代码:
varapp=getApp(); Page({ data:{}, onLoad:function(options){ //页面初始化options为页面跳转所带来的参数 varthat=this //登陆获取code wx.login({ success:function(res){ console.log(res.code) //获取openid that.getOpenId(res.code) } }); }, getOpenId:function(code){ varthat=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){ varthat=this //统一支付 wx.request({ url:'后台路径', method:'GET', data:{ gfee:'商品价钱', gname:'商品名称', openId:openid (商品价钱和商品名称根据自身需要是否传值,openid为必传) }, success:function(res){ varpay=res.data //发起支付 vartimeStamp=pay[0].timeStamp; varpackages=pay[0].package; varpaySign=pay[0].paySign; varnonceStr=pay[0].nonceStr; varparam={"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 } }) } })
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!