> 自媒体 > (AI)人工智能 > 火了!微信小程序与内嵌网页交互实现支付功能,小白们来学习吧
火了!微信小程序与内嵌网页交互实现支付功能,小白们来学习吧
来源:ChatAiRobot
2023-06-30 14:21:28
800
管理

上个月,小程序开放了新功能,支持内嵌网页,所以我就开始了小程序内嵌网页之路,之前我只是个小安卓。

内嵌网页中可使用JSSDK 1.3.0提供的接口,可坑就来了,居然不支持支付接口的调用,经过一番研究,总算打通了两边的交互

大概流程

1、先说明涉及到的文件,下面会用到

1.1 app.js:小程序的app.js文件,在globalData里定义一个全局变量paySuccessUrl: '',用来保存支付成功跳转url

web-view>

})

4、在内嵌网页web_pay.vue调用支付时把支付金额,支付说明,支付成功跳转url...(任何你想要的参数,记得encodeURIComponent),传给小程序原生页面

let jumpUrl = encodeURIComponent(window.location)

let path = `/page/pay/pay?amount=$&title=$&jumpUrl=$`

url: path

})

}

onLoad: function (options) {

console.log(options)

// 获取网页传过来的值

// TODO 用es6解构来获取值TODO

jumpUrl = options.jumpUrl

amount = options.amount

title = options.title

...

},

6、支付成功后,把跳转url附带支付结果及当前时间保存到全局变量

paySuccess () {

let currentTime = new Date().getTime()

jumpUrl = options.jumpUrl encodeURIComponent(`?payResult=1&time=$`)

//payResult=1表示支付成功,这里我偷懒了直接在url后面补?,实际情况比较复杂

//为了实现支付成功返回后的无刷新加载,这里的参数应该是属于路由web_pay.vue的,而不是属于window.location.search的

//所以要判断路由锚点#的位置和是否已经有路由参数(如果是vue-router的history模式我没用过,应该和window.location一样吧)

getApp().globalData.paySuccessUrl=jumpUrl //保存跳转url到小程序全局变量里

}

onShow: function () {

console.log('on show')

let paySuccessUrl = getApp().globalData.paySuccessUrl

getApp().globalData.paySuccessUrl="" //清空支付成功url,防止一些操作触发onShow事件

if (paySuccessUrl) {

let url = decodeURIComponent(paySuccessUrl)

this.setData({

//这里在次说明下步骤6中的&time=$,就是因为不加这个当你第一次支付成功回来这里

//这个url跟你第二次支付成功回来这里是一样的,会导致第二次支付开始,这里的setData方法失效

url

})

}

},

8、步骤7中的setData会触发webview中的网页加载,由于我采用的是vue-router,而且前后两个url只有路由的参数query不一样,所以并不会触发界面刷新,也不会触发路由的重新加载,而是只会触发beforeRouteUpdate 这个方法,举个例子,现在支付前界面是https://host/#/pay,然后支付成功后跳转https://host/?

payResult=1&time=123456#/pay,此时界面不会刷新,pay路由也不会重新加载,而是触发beforeRouteUpdate (to, from, next),你要做的只是在这里界面解析to.query里的数据,然后该干嘛干嘛

beforeRouteUpdate (to, from, next) {

console.log('路由发生改变,很有可能是小程序的支付成功回调')

if (payResult) { // 小程序支付成功

if (payResult === '1') {

console.log('支付成功,下班打卡走人')

}

}

next()

},

这么晚了,先睡了,如果有空我再整理个demo,如果文章对你有帮助麻烦点个赞

1
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 凡本网注明 “来源:XXX(非本站)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。 如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。 QQ:617470285 邮箱:617470285@qq.com
相关文章
. 宝马半价卖!降幅高达49%,2026年车市杀疯了
俗话说得好:“三十年河东,三十年河西。”谁能想到,曾经高不可攀、甚至..
宝马 Alpina 新标正式发布,定位仅次于劳斯莱斯
2026年2月12日,宝马正式对外披露其 Alpina 的最新规划,并发布了全新设..
默茨专机抵京,第一道难关出现!宝马CEO通知政府,中方有言在先..
更值得关注的是投资端。2025年前11个月,德国企业在华投资超过70亿欧元,..
本土高管退场、渠道全面告急,奔驰宝马的2026!
2026年一开年,奔驰和宝马接连出现的人事变动,把豪华车市场最真实的压力..
有人说开奔驰E300的都是装。我就想问:你连装都装不起,你酸什么..
春节刚过完,私信快被“56E怎么选”给炸爆了。尤其是2026款的奔驰E300L,..
潘九堂谈小米汽车立项路线之争:既然出发晚了,干脆挑战最难的,最终选择正..
IT之家 2 月 26 日消息,小米产业投资部合伙人潘九堂今日发文,谈到了小..
宝马CEO警告:忽视中国或危及未来经济成功,合作是关键..
【文/观察者网 王一】据英国路透社2月19日报道,德国宝马集团董事长齐普..
宝马CEO最新涉华表态:对中国庞大市场与创新潜力视而不见的人,正错失巨大..
据路透社报道,宝马集团首席执行官(CEO)奥利弗·齐普策当地时间19日警..
宝马7系直降27万 BBA集体放价 豪华车市格局生变
2026年2月,宝马7系终端现金优惠高达27万元,奔驰、奥迪等德系豪车主力车..
关于作者
秋叶无痕(普通会员)
文章
2024
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行

成员 网址收录40418 企业收录2986 印章生成263660 电子证书1157 电子名片68 自媒体107022

1
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索