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

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

内嵌网页中可使用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
相关文章
智械危机还是技术革命?ChatGPT究竟是何方神圣?
近期,相信有很多人都被“chatGPT”作为AI模拟对话程序所拥有的强大学习..
除了OpenAI,全球还有这12家生成式AI独角兽值得关注
2023年第一季度,全球科技行业不少公司因资金短缺陷入困境,出现了一波大..
马斯克没解决的难题,这家独角兽先跑通!或成为人形机器人第一股..
编辑:Aeneas 好困【新智元导读】8年深耕,OpenAI做出让全世界瞩目的Chat..
ChatGPT成提款机了,商家代注册、代提问月入60万,写一篇论文挣500元..
本文来源:时代财经 作者:李婷 “你好,请帮我写一份xx工作的年度总结提..
反转又来了,OPEN AI创始人即将重新回归!
最近在科技圈,可谓是发生了一件大事,其程度堪比上演了一场宫斗大戏。那..
实测|文心一言初体验,百度VS OpenAI,谁是你的职业好助手?..
“人工智能可以替代人类做很多重复性、规律性、简单重复的工作,但人工智..
OpenAI推出GPT-4:功能强过ChatGPT 能玩梗图还能做网页
OpenAI还在为机器学习模型设计的传统基准上评估了GPT-4,称GPT-4大大优于..
三条微信聊天潜规则,学会了,让你更受欢迎
动动手指,千里之外的人也会看到你。不得不承认,微信让我们的社交,越来..
人人都懂ChatGPT第一章:ChatGPT 与自然语言处理
如果用户与 ChatGPT 对话的轮次过多,一般来讲模型仅会保留最近几轮对话..
关于作者
秋叶无痕(普通会员)
文章
399
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行

成员 网址收录40329 企业收录2981 印章生成186856 电子证书796 电子名片49 自媒体20954

@2022 All Rights Reserved 浙ICP备19035174号-7
1
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索