UNIAPP写的H5以及APP跳转小程序

因为公司支付变更,需要将原来的支付换成第三方支付,需要更改项目中的微信支付和支付宝支付。虽然是个小功能,但还是记录一下吧。

// 支付前先调起预支付接口,预支付接口会返回订单号,支付类型,支付金额等参数,也是为了更加安全的保证支付。
// 预支付接口
    perOrder(data) {
      this.$http.post("/pay/huiFu/h5/perOrder", data).then((res) => {
        // 预支付调用成功后判断支付类型
        if (this.payType == "wxpay") {
          // 采用uniapp的条件编译,区分环境

          // #ifdef APP-PLUS
          // 采用H5联盟的方法实现app跳转小程序
          plus.share.getServices(
            (data) => {
              let sweixin = null;
              for (let i in data) {
                if (data[i].id == "weixin") {
                  sweixin = data[i];
                }
              }
              if (sweixin) {
                // 跳转到微信小程序
                sweixin.launchMiniProgram({
                  id: "gh_123456789abc", //微信小程序原生id
                  path: `/pages/hf/index?code=${res.pre_order_id}`,
                  // 可取值:0-正式版; 1-测试版; 2-体验版。默认值为0。
                  type: 2, // 微信小程序版本类型,  
                });
              } else {
                uni.showToast({
                  title: "请安装微信",
                  icon: "none",
                });
              }
            },
            (err) => {
              console.log("跳转失败"); 
            }
          );
          // #endif
          // H5页面跳转小程序
          window.location.href=
          "weixin://dl/business/appid=123456abc&path=pages/hf/index&query=code=" 
          +res.pre_order_id +"&env_version=release";
        }
        // 支付宝
        if (this.payType == "alipay") {
          // app跳转小程序
          // #ifdef APP-PLUS
          plus.runtime.openURL(res.qr_code, () => {
            uni.showToast({
              icon: "none",
              title: "支付失败",
            });
          });
          // #endif
          // H5环境跳转小程序
          // #ifdef H5
          window.location.href = res.qr_code;
          // #endif
        }
      });
    },

注意点:

1. 采用launchMiniProgram跳转小程序的时候id填写的是原生id不是appid。

2. 注意写对type类型和对应路径。

3.H5页面跳转小程序的时候需要在小程序管理后台进行配置才可以进行跳转。配置的路径必须为线上路径才可以配置成功。

4. 采用url scheme传值的时候必须要带上query才可以传过去。

参考文档:小程序URL Scheme

  • 24
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值