微信小程序内嵌h5,h5调用小程序支付功能解决方案

今天我们来实现一个小功能,就是,微信小程序内嵌了一个h5,然后h5调用小程序的支付功能。

在开始之前先要了解几个小知识点:

  1. 小程序内嵌的h5的域名,需要在小程序管理后台配置业务域名,这个是必须的!很重要!!!

  2. 小程序内嵌的h5,如果需要调用小程序的一些功能,h5里面需要加载JSSDK 1.3.2

  3. jssdk可以调用哪些sdk:

在这里插入图片描述

OK,了解以上知识点后,我们可以开始我们的表演:

表演之前,我默认你已经在小程序管理后台配置了业务域名,也在h5项目里面添加了jssdk。

【h5端】

  1. 在h5页面里面需要支付的地方或者方法里面,请求后端接口,拿到支付相关参数。

  2. 然后调用jssdk的方法

wx.miniProgram.navigateTo({
	url: `/pages/h5pay/index?timeStamp=${timeStamp}&nonceStr=${nonceStr}&package=${package}&signType=${signType}&paySign=${paySign}`
})

【小程序端】

在小程序端准备一个单独的支付页面,用来接受h5传过来的参数,在小程序的js文件里面的onLoad周期函数里面拿到参数

  1. 准备一个单独的页面,用来处理h5支付的逻辑,比如 pages/h5pay/index,这个页面要和h5端跳转的页面保持一致
onLoad (options) {
  // options 里面可以拿到h5传递过来的参数
  // 调起支付
  wx.requestPayment({
    ...options,
    success(res) {
      // 支付成功后,设置一个全局变量,然后返回到那个vwebview页面
      wx.$payResult = {...res, paycode: 1};
      wx.navigateBack();
    },
    fail() {
      // 支付失败,同样设置一个全局变量,然后返回到那个vwebview页面
      wx.$payResult = {paycode: 0};
      wx.navigateBack();
    },
  });
}  
  1. 在webview页面的onShow周期函数,获取支付结果,改变url,通知h5支付结果
onShow() {
  if(wx.$payResult && wx.$payResult.paycode) {
    // 这里只是伪代码,具体根据业务需求自行更改
    this.setData({url: 'https://www.h5.com/xxx/xxx?payresult=' + JSON.stringify(wx.$payResult)});
    // 这里再置空
    wx.$payResult = null;
  }
}
  1. 在h5页面的支付结果页面里面,通过url的参数来显示提示结果,或者其他内容
let url = new URL(window.location.href);
// 这里就根据具体的业务返货的参数来处理
url.searchParams.get('xxx')

OK,通过以上步骤,就可以完美实现微信小程序内嵌h5调用小程序支付了。

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序是一种轻量级的应用程序,可以直接在微信内部运行。与传统的H5页面不同,微信小程序具有更快的加载速度、更高的交互性、更多的功能和更好的用户体验。但是,有些时候,为了满足用户的需求,我们可能需要在微信小程序中嵌入H5页面。 在微信小程序中嵌入H5页面的过程分为两个步骤: 1. 生成微信小程序的web-view组件,这个组件可以承载H5页面。 2. 在H5页面中引入微信提供的JS-SDK,通过JS-SDK调用微信小程序的API,实现小程序内嵌H5页面的效果。 下面是具体步骤: 1. 在微信小程序的wxml代码中,添加web-view组件,代码如下: <web-view src="{{url}}"></web-view> 其中,url是要嵌入的H5页面的URL地址。 2. 在H5页面中引入微信提供的JS-SDK,代码如下: <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> 3. 在H5页面中使用JS-SDK调用微信小程序的API,实现小程序内嵌H5页面的效果,代码如下: <script> wx.miniProgram.navigateTo({ url: '/pages/webview/webview?url=' + encodeURIComponent(window.location.href) }); </script> 以上代码实现功能是,在H5页面调用微信小程序的API,跳转到小程序页面,并把当前页面的URL地址通过query参数传递给小程序页面。 需要注意的是,在使用微信小程序内嵌H5页面时,需要遵循微信小程序的一些规则,比如必须使用HTTPS协议、不能跳转到其他小程序等。同时,也要注意H5页面的适配性,确保在小程序中的显示效果与在浏览器中一致。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值