h5 使用 JSAPI 调起微信支付

374 阅读1分钟

背景:uniapp 开发 h5

实现:手机 h5 页面内点击付款实现微信支付

限制:只能在微信浏览器环境下才行

💥借鉴地址

注意:以下三点必须符合要求,否则调起失败

企业微信截图_16612343351758.png

前端部分

因为示例背景是从另外一个小程序,选择商品后会生成一个二维码,扫码进入 h5 ,进行商品的一些其他选择,最后下单支付。

  1. 根据后端的接口,获取调起支付时所需参数

    image.png

  2. 在成功获取所需参数后,调起微信支付,传入参数即可

 // ----------------------- 调用微信支付
        function onBridgeReady() {
          WeixinJSBridge.invoke(
            'getBrandWCPayRequest',
            {
            // 这里传入对应的参数即可
              "appId":"wx2421b1c4370ec43b", //公众号ID,由商户传入
              "timeStamp":"1395712654", //时间戳,自1970年以来的秒数
              "nonceStr":"e61463f8efa94090b1f366cccfbbb444", //随机串
              "package":"prepay_id=u802345jgfjsdfgsdg888",
              "signType":"MD5", //微信签名方式:
              "paySign":"70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信签名
            },
            function (res) {
              if (res.err_msg == 'get_brand_wcpay_request:ok') {
                // 使用以上方式判断前端返回,微信团队郑重提示:
                //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
              }
            },
          );
        }
        if (typeof WeixinJSBridge == 'undefined') {
          if (document.addEventListener) {
            document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
          } else if (document.attachEvent) {
            document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
            document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
          }
        } else {
          onBridgeReady();
        }
        // ------------------------
  1. 在手机中测试支付