博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决微信小程序中web-view无法调用微信支付
阅读量:6233 次
发布时间:2019-06-21

本文共 2003 字,大约阅读时间需要 6 分钟。

项目已在公众号上线,现在要搞个小程序,小程序有web-view,可以免去二次开发,直接连接到公众号即可,但在web-view中无法调用H5的微信支付,需要在H5中调回小程序中才能调用微信支付。

闲话不多说,直接贴代码:

首先在小程序中连接公众号连接

 

在原来的H5支付页面中加个判断

前提需要添加这个:

 
var isWxMini = window.__wxjs_environment === 'miniprogram'     // 判断场景是否小程序if (isWxMini) {//  把要用到的参数传到小程序中进行支付 wxJson是由后台协商好返回的数据格式,该代码仅供参考,不能实际使用  const wxJson = {   amount: 100   //  订单金额,如还需其他参数可增加 };  wx.miniProgram.navigateTo({    url: "/pages/pay/pay?param=" + wxJson     // 微信小程序调用支付的页面  })} else { //  这里放原理的支付逻辑}
接下来在小程序中添加一个页面pay,空白页即可
 

pay.js中的代码如下:

onLoad: function (options) {  var amount= options.amount;  wx.request({    url: '/miniProgram/getPayParam?amount=' + amount,    //  后台接口,返回调起微信支付所需参数    method: 'get',    success: function(res) {            wx.requestPayment({      'timeStamp': res.data.data.timeStamp,      'nonceStr': res.data.data.nonceStr,      'package': res.data.data.package,      'signType': 'MD5',      'paySign': res.data.data.paySign,      'success': function (res) {        //定义小程序页面集合        var pages = getCurrentPages();        //当前页面 (wxpay page)        var currPage = pages[pages.length - 1];        //上一个页面 (index page)        var prevPage = pages[pages.length - 2];        //通过page.setData方法使index的webview 重新加载url 有点类似于后台刷新页面        //此处有点类似小程序通过加载URL的方式回调通知后端 该订单支付成功。后端逻辑不做赘述。        wx.redirectTo({ url: '/pages/index/index' });        //小程序主动返回到上一个页面。即从wxpay page到index page。此时index page的webview已经重新加载了url 了        //微信小程序的page 也有栈的概念navigateBack 相当于页面出栈的操作        wx.navigateBack();      },      'fail': function (res) {        console.log("支付失败");        console.log(res);        var pages = getCurrentPages();        var currPage = pages[pages.length - 1];        var prevPage = pages[pages.length - 2];        console.log("准备修改数据");        wx.redirectTo({ url: '/pages/index/index' });        console.log("准备结束页面")        // wx.navigateBack();      }    })    }  })} 
到这里就能在小程序中调其web-view中用到的微信支付了,亲测有效,希望对你有所帮助。
有问题可联系
QQ: 412606846 (微信同号)

 

转载于:https://www.cnblogs.com/zlfProgrammer/p/9376821.html

你可能感兴趣的文章
javascript 实现ajax
查看>>
在ajax的success中给变量赋值为空问题解决办法
查看>>
Linux 下软件安装时报/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
查看>>
ipsec-tools之racoon搭建
查看>>
监听HOME键
查看>>
分享27款非常精美的2012新年桌面壁纸
查看>>
Linux rm 删除指定文件外的其他文件
查看>>
android:layout_weight属性详解
查看>>
在Microsoft Windows XP中使用传真
查看>>
Javascript和HTML5 利用canvas构建 Web五子棋游戏程序设计
查看>>
学生机房虚拟化(二)定制安装宿主系统
查看>>
互斥量和条件变量
查看>>
基础入门_Python-模块和包.Gevent异步/状态获取/超时设置/猴子补丁?
查看>>
利用Java随机数计算圆周率π
查看>>
一一对应 脚本
查看>>
linux配置ntp服务器
查看>>
[Error]分布式部署SCOM安装报错——Report Services实例无效
查看>>
我的友情链接
查看>>
字符处理相关
查看>>
Linux time命令学习
查看>>