IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> h5嵌入微信小程序app,无法唤起微信支付 -> 正文阅读

[移动开发]h5嵌入微信小程序app,无法唤起微信支付

项目背景:我们要做投保的页面,点击保存时要调用小程序的支付页面,通过小程序去支付

H5使用的技术框架 : VUE+Mint-UI 小程序使用框架 :UNIAPP,唤起微信支付

第一种方案是引入微信的jsdk

通过 wx.miniProgram.navigateTo({
  url: strGoPath
})

发现偶尔会失效

第二种方案是引入uni.webview.1.5.2.js

uni.navigateTo({
  url: strGoPath,
  success: function(res) {
    console.log("调用第三方支付成功!")
  },
  fail: function(res) {
    console.log("调用第三方支失败付!", res)
  }
})

此种方法也会偶尔失效,调用不到小程序的支付,通过百度说是可能缺少complete方法,于是

uni.navigateTo({
  url:  strGoPath,
  success: function(res) {
    console.log("调用第三方支付成功!")
  },
  fail: function(res) {
    console.log("调用第三方支失败付!", res)
  },
  complete: function(res) {
    console.log(res)
  }
})

此种方法也会有偶尔换不起。

第三种方案,增加延时方法用redirectTo,发现还是有1%的时候,换不起支付

setTimeout(function() {
  uni.redirectTo({
    url: strGoPath,
    success: function(res) {
      console.log("调用第三方支付成功!")
    },
    fail: function(res) {
      console.log("调用第三方支失败付!", res)
    },
    complete: function(res) {
      console.log(res)
    }
  })
}, 500)

在尝试了三种方式后,心态已崩溃,百度万全找不到可以实际奏效的方案

于是抱着试一试的心态,把申明不在放在created/mountef中,直接提到secipt标签之下

? 然后保存后调用openWx

openWx(pageUrl){
  let This = this;
  // 若没有唤起支付,关闭弹框
  setTimeout(function() {
    console.log("唤起支付失败!已超过3s");
    This.$indicator.close();
  }, 3000);

  if(!wxR){
    console.info('wx.miniProgram.redirectTo 加载失败');
  }

  setTimeout(()=>{
    wxR({
      url: pageUrl,
      success: function(res) {
        console.info("调用第三方支付成功!pageUrl="+pageUrl)
      },
      fail: function(res) {
        console.info("调用第三方支付失败!", res+pageUrl)
      },
      complete: function(res) {
        try{
          This.strGoPath = ""
          console.log("打开页面完成complete", e)
          This.$indicator.close();
        }catch(e){
          This.strGoPath = ""
          console.log("打开页面完成complete报错", e)
      }
    }
   });
  },300);
},

用了这种方案之后,发现再没有出现支付换不起的情况!解决了一大问题,瞬间心情很好。哈哈哈

希望可以帮到各位看官,如有疑问请联系我~

祝大家新春快乐!

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 23:11:58  更:2022-01-29 23:14:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:22:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码