前端在H5页面唤起微信支付(H5支付)

前言

公司产品之前是在公众号之内访问,使用微信JSDK调用微信支付。后需要在浏览器之中访问,调用H5支付。前端使用框架是VUE + VANT

提示:以下是本篇文章正文内容,下面案例可供参考

首先了解什么是H5支付,链接地址:微信H5支付说明文档

一、在支付页面通过后端接口获取H5支付链接

pay() {
    let This = this;
    this.$indicator.open(); //loading...
    let params = {
        proposalNo: this.$route.query.orderNo,
        orderType: '2', // 1投保单 2订单
        payType: this.isWeixin() ? '': '3'
    }
    initiatePayment(params).then(res => {
        if (res.code == 200) {
            This.$indicator.close();
            localStorage.setItem("payVisiable", true)
            location.href = res.data.mwebUrl // 获取支付链接直接跳转微信
        }
    }).catch(error => {
        This.$indicator.close();
        This.$toast(error)
    })
    
}

接下来说下,在过程中遇到的坑!!!

1、使用上边的代码跳转到微信之后,用户支付成功或失败都会跳转到发起支付的这个页面,发起支付的页面地址是https://xxx.xxxxx.cn/channel/a/#/studyH5?policyNo=1111&planCode=2222,支付完成或支付失败后,跳转的页面就变成了 https://xxx.xxxxx.cn/channel/a/#/,问题来了,页面加载不出来了。

解决方法:

//在跳转支付链接后,拼接微信回跳地址
location.href = res.data.mwebUrl + '&redirect_url=' + encodeURIComponent(window.location.href)

重点  跳转地址需要encodeURIComponent

二、支付成功/失败后,在微信跳转会的页面增加弹层,让用户去触发查询保单是否生成的按钮,跳转相应支付成功/失败页面

// 查询支付结果
seachPayResult() {
    let This = this
    if(!localStorage.getItem("outOrderNo")) return
    var orderNo = JSON.parse(localStorage.getItem("outOrderNo"))
    getPayStatus(orderNo).then(res => {
        This.payVisiable = false //弹窗消失
        if(res.status != '1'){
            window.location.href = `${this.$_config.URL.unpaid}?orderNo=${orderNo}&code=Y38&channelCode=${this.$route.query.channelCode}`
        } else {
            localStorage.removeItem("outOrderNo")
            window.location.href = `${this.$_config.URL.success}?orderNo=${orderNo}&code=Y38&channelCode=${this.$route.query.channelCode}`
        }
    }).catch(error => {})
}

总结

以上就是今天要分享的内容,仅是自己在开发中所遇到的问题。在此分享给小伙伴,也是给自己做个笔记。谢谢~~

  • 16
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: h5页面可以通过调用微信JS-SDK中的微信API实现唤起微信添加好友的功能。首先,页面需要先引入微信JS-SDK,并进行相关配置。然后,通过调用wx.addContact方法来实现添加好友的功能。在调用这个方法时,可以将手机号码作为参数传递过去,用于自动填充好友的手机号。 实现的具体步骤如下: 1. 在h5页面中引入微信JS-SDK,并进行相关的配置。 2. 在需要添加好友的地方,新增一个按钮。绑定点击事件,调用wx.addContact方法。 3. 在wx.addContact方法中,设置相关参数。其中,mobilePhoneNumber参数对应的就是待添加好友的手机号码。 4. 用户点击按钮后,会在微信客户端中打开“添加朋友”页面,并自动填充好友的手机号,用户只需点击“发送”按钮即可完成添加好友的操作。 需要注意的是,该功能只能在微信客户端中使用,无法在其他浏览器中使用。同时,需要保证用户已经在微信客户端中登录,并开启了微信JS-SDK的权限。 ### 回答2: 在H5页面中,我们可以通过调用微信JS-SDK提供的方法来实现唤起微信添加好友功能并把手机号当作参数传递过去。具体实现步骤如下: 1. 首先,在H5页面中引入微信JS-SDK,并通过调用wx.config方法来进行配置。 2. 然后,通过调用wx.ready方法来确保JS-SDK已经准备好使用。 3. 接着,我们可以调用wx.addContact方法来唤起微信添加好友功能。这个方法接受一个options对象作为参数,其中包含了需要传递的参数,比如手机号等。 4. 最后,在调用wx.addContact方法之前,我们还需要检查一下用户是否已经安装了微信客户端,如果没有安装的话应该给一些提示。 总的来说,在H5页面唤起微信添加好友功能并把手机号当作参数传递过去的过程比较简单,并且需要使用微信JS-SDK提供的相关方法来实现。通过这种方式,我们可以实现更方便、更快捷的添加好友操作,提高用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值