当前位置: 首页 - 数码 - 小白们你准备好学习微信小程序与内嵌网页交互实现支付功能的秘诀了吗这不仅是科技公司的未来趋势也是你提升

小白们你准备好学习微信小程序与内嵌网页交互实现支付功能的秘诀了吗这不仅是科技公司的未来趋势也是你提升

2025-02-23 数码 0

在上个月,小程序推出了一个新的功能,它支持内嵌网页,这促使我开始探索小程序内嵌网页的世界。之前,我只是一个普通的安卓用户。

在内嵌网页中,我们可以使用JSSDK 1.3.0提供的接口,但我们发现支付接口调用被禁用。这让我们的任务变得更加困难。我花了不少时间研究和解决这个问题,终于成功实现了两边之间的交互流程。

以下是大致的步骤:

首先,我们需要准备一些文件。在这篇文章中,我们会提到以下几个关键文件:

app.js:这是小程序中的核心文件。在这里,我定义了一个全局变量paySuccessUrl,用于保存支付成功后的跳转URL。

web-view.vue:这是我们在内嵌网页中的Vue组件。在这里,我们调用支付时,将支付金额、说明以及支付成功后的跳转URL(及其他任何需要传递的参数)传递给小程序原生页面。

接下来,让我们详细看一下这些步骤是如何实现的:

在内嵌网页中设置跳转URL:

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

...

},

支付成功后更新全局变量:

paySuccess () {

let currentTime = new Date().getTime()

jumpUrl += encodeURIComponent(`?payResult=1&time=${currentTime}`)

// 清空支付成功url,防止一些操作触发onShow事件

}

onShow: function () {

if (paySuccessUrl) {

let url = decodeURIComponent(paySuccessUrl)

this.setData({

url,

})

}

},

触发界面刷新并处理路由变化:

beforeRouteUpdate (to, from, next) {

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

if (to.query.payResult === '1') {

// 如果为true,则表示已经完成了某些操作

}

next()

}

这样就完成了一次完整的小程序与内嵌网页交互过程。如果你对这种技术感兴趣或遇到了类似的问题,请继续关注我的下一篇文章,或许我还能分享更多有用的信息。

标签: 2022年最火电子产品招商银行量产工具中关村排行榜手机csdn官网