dlmg

因为公司刚刚重新做了网站,所以也吧公众号和小程序提上了日程,在公众号里面没有什么问题,直接按照官方文档进行代码编写、调试,然后就解决了公众号内支付的问题。

因为小程序提供了<webview>组件,所以把网站直接扔进去就方便多了,但是坑爹的是在网页内进行的下单怎么调起微信支付呢,它并不像公众号能在网页内直接调起,小程序需要在前端进行API的调用。

明白了这个道理下面就有努力的方向了,我们看官方文档,依靠着官方提供的文档才能写出相应功能(小声BB:腾讯的文档真的是坑爹,看了几种开发文档,非就把你绕的难受)

 

获得用户的openid在这里就不说了,直接调用wx.login就可以,网上也一堆教程。前端页面我写的是

 

 

新建wxpay的目录,只是单纯的为了接收后台传过来的参数,以方Page({

onLoad: function (options) {
console.log(options)
var that = this;
//页面加载调取微信支付(原则上应该对options的携带的参数进行校验)
that.requestPayment(options);
},
//根据 obj 的参数请求wx 支付
requestPayment:function (obj) {
//获取options的订单Id
var orderId = obj.orderId;
//调起微信支付
wx.requestPayment({
//相关支付参数
\'timeStamp\': obj.timestamp,
\'nonceStr\': obj.nonceStr,
\'package\': \'prepay_id=\'+obj.prepay_id,
\'signType\': obj.signType,
\'paySign\': obj.paySign,
//小程序微信支付成功的回调通知
\'success\': function (res) {
//定义小程序页面集合
var pages = getCurrentPages();
//当前页面 (wxpay page)
var currPage = pages[pages.length - 1];
//上一个页面 (index page)
var prevPage = pages[pages.length - 2];
console.log(\'支付成功\')
 
//小程序主动返回到上一个页面。即从wxpay page到index page。此时index page的webview已经重新加载了url 了
//微信小程序的page 也有栈的概念navigateBack 相当于页面出栈的操作
wx.navigateBack();
wx.showModal({
title: \'支付结果\',
content: \'支付成功,请到我的->我的订单查看\',
cancelText: "我已了解",//默认是“取消”
cancelColor: \'skyblue\',//取消文字的颜色
confirmText: "确定",//默认是“确定”
confirmColor: \'skyblue\',//确定文字的颜色
})
},
//小程序支付失败的回调通知
\'fail\': function (res) {
console.log(res)
var pages = getCurrentPages();
var currPage = pages[pages.length - 1];
var prevPage = pages[pages.length - 2];
console.log("准备修改数据")
console.log("准备结束页面")
wx.navigateBack();
wx.showToast({
title: \'支付失败\',
})
}
})
},
})

 

分类:

技术点:

相关文章:

  • 2021-11-15
  • 2021-11-17
  • 2021-04-23
猜你喜欢
  • 2021-08-11
  • 2021-11-23
  • 2021-04-27
相关资源
相似解决方案