webview 个人小程序_微信小程序webview中,拉起小程序的微信支付 | 剑花烟雨江南...
由于最近公司业务调整,需要在小程序的webview中拉起小程序的微信支付,经过各种爬坑和搜索,找到如下结果方法,供大家参考:
一、判断小程序浏览器
使用 USER_AGENT判断小程序还是公众号浏览器还是APP:
if(strstr($_SERVER['HTTP_USER_AGENT'],'mini')){
$isminiapp= 1;
}
$payParam = array(); //支付参数
然后生成支付的参数,支付的签名和统一下单不在此细说,可自行百度或者使用各种开源代码
二、将支付的参数返回给小程序
首先使用php引入一个小程序的js包:
echo '';
然后跳转给小程序的某个页面:
echo '
url: '/pages/login/login?json='.json_encode($payParam);
})';
url 的地址由小程序提供
三、在小程序里接收此json参数,拉起微信支付
onLoad: function (obj) {
console.log(obj)
//获取options的订单Id
var orderId = obj.orderId;
//调起微信支付
wx.requestPayment({
'appId': '',
'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];
//通过page.setData方法使index的webview 重新加载url 有点类似于后台刷新页面
//此处有点类似小程序通过加载URL的方式回调通知后端 该订单支付成功。后端逻辑不做赘述。
prevPage.setData({
url: '',
}),
//小程序主动返回到上一个页面。即从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("准备修改数据")
prevPage.setData({
url: "https://xxxxxxxxxx/wx_isPayment.jhtml?orderId=" + orderId + '&ispay=0',
}),
console.log("准备结束页面")
wx.navigateBack();
}
})
},
webview 个人小程序_微信小程序webview中,拉起小程序的微信支付 | 剑花烟雨江南...相关推荐
- asp.net应用程序_如何在ASP.NET中为聊天应用程序构建键入指示器
asp.net应用程序 by Neo Ighodaro 由新Ighodaro 如何在ASP.NET中为聊天应用程序构建键入指示器 (How to build a typing indicator fo ...
- python日程提醒小程序_用手机APP管理日程太繁琐?试试这个微信小程序
随着我们日常生活.学习以及工作的日益繁忙,合理安排自己的日程事项变得越来越重要.相信大家在自己的手机里也安装过一些任务管理APP,可是真正坚持用下来的人又有多少呢?如果你觉得手机里的任务管理APP功能 ...
- 微软小娜打开应用程序_利用您现有的Microsoft投资进行应用程序白名单
微软小娜打开应用程序 Application Whitelisting? What Is It? 应用白名单? 它是什么? I consider a firewall to be a Yes / No ...
- python中函数是一段子程序_用Python来写一个男女相亲小程序|码农的情人节
功能: 你输入你的性别,年龄,生日,我程序就给匹配一下你喜欢的类型,下面我们具体来讲讲怎么用Python写 第一部分:用户输入部分 1.获取用户的输入:我们用raw_input() args =raw ...
- python烟花小程序_七夕用python给男朋友写的小程序,感动哭了。
tkinter做的GUI图形界面 登陆界面,输入账号密码点击照片登陆. 登陆界面 密码输入错误则出现以下弹窗: 试图关闭界面,则出现以下弹窗: image.png 输入密码登陆以后开始答题,请忽视这个 ...
- listview 每行后面的小箭头_几个简单而有用的电脑小知识
1: 怎么用批处理文件删除桌面快捷菜单的小箭头? A:在电脑记事本中,复制以下内容并保存为.bat 后缀名文件,保存在桌面双击运行即可 清除快捷菜单的小箭头! @ECHO OFF reg delete ...
- vscode中运行2个程序_在64位系统中运行32位或16位程序
由于CPU和系统架构的更新,现行主流的Windows系统已经是64位.然而许多人还恋恋不舍的一些老游戏或老程序已经没有了更新.在64位的系统上运行这些程序,往往会出现运行故障.如何才能解决这个烦心事? ...
- 用java编写验证码程序_编写,验证和分析实时Java应用程序
本文是" 用实时Java开发"系列的第三篇也是最后一部分,展示了如何设计,编写,验证和分析基本的实时应用程序. 我们将说明: 应用程序的时间和性能要求. 为什么传统的非实时Java ...
- 蓝牙小电池图标_方寸间、掌握中,omthing小方盒开箱测评
市面上的蓝牙耳机越来越多,每一款都让"打工人"感觉到迷惑,到底什么是最好?什么才是最适合"打工人"的耳机?今天我们开箱的这款万魔声学旗下品牌omthing的首款 ...
最新文章
- iOS 图片处理-利用GPUImage 磨皮和美白图片
- Eclipse生成jar文件
- 【大厂攻略】Android开发3年当了2年咸鱼每天CRUD,复习2个月幸运拿下美团offer!
- 数字货币 矿池 矿场 区别
- 量子计算机怎么储存,单个比特可以存储更多的信息 量子计算机时代真的要来了?...
- hdu5248序列变换(二分+贪心)基础题
- 【深度学习】ReLU激活函数的缺点
- 5.Excel日期时间函数类应用
- [Swift]LeetCode897. 递增顺序查找树 | Increasing Order Search Tree
- CodeForces Round #191 (327C) - Magic Five 等比数列求和的快速幂取模
- jqueryui时间插件_jQueryUI Progressbar插件
- UPS输出连接要求IEC C320 C13,输入连接要求(6)IEC 320 C14
- Redis主从复制知识点
- 第三方网站接入秀米,实现秀米编辑的文章同步到自己的网站平台
- 怎么查计算机的ip,教你如何查询电脑ip地址的方法
- 关于RTP的一些背景知识
- Xrm.WebApi 多对多关系处理
- 知识蒸馏 | (1) 知识蒸馏概述
- Log4j2 重大漏洞与解决方案
- Connection id “0HMGNTPDIIA4M“.Request id “0HMGNTPDIIA4M:00000001“:An unhandled exception was thrown
热门文章
- 软件测试面试题:优惠券的测试点包含哪些方面?测试点包含哪些方面?
- EBAZ4205矿机摄像头扩展板
- Zabbix监控服务器异常IP登录
- Excel基础(二):Excel公式函数
- Android开启telnet服务
- 测试工程师,跳槽涨了4k,年总包算下来还降薪了?
- SQL Server中遇到的(1行受影响)
- KDD2021 | 左右互搏:基于协同对比学习的自监督异质图神经网络
- 对DBpedia各子数据集特点分析
- 写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和, 例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19