微信、支付寶、淘寶 客戶端內嵌H5頁面用JSAPI喚起支付


// 喚起支付寶/微信支付
export default function toPay (res1) {
  let _this = window.vm
  const isWX = /micromessenger/.test(window.navigator.userAgent.toLowerCase())
  const isAliPay = /alipayclient/.test(window.navigator.userAgent.toLowerCase())
  const isTB = /windvane/.test(window.navigator.userAgent.toLowerCase())

  if (isWX) {
    function onBridgeReady () {
      WeixinJSBridge.invoke(
        'getBrandWCPayRequest', {
        "appId": res1.data.appId,     //公眾號名稱,由商戶傳入     
        "timeStamp": res1.data.timeStamp + '',   //時間戳,自1970年以來的秒數
        "nonceStr": res1.data.nonceStr, //隨機串     
        "package": res1.data.package,
        "signType": res1.data.signType, //微信簽名方式
        "paySign": res1.data.paySign    //微信簽名 
      },
        function (res) {
          console.log('微信支付回調:', res)
          if (res.err_msg == "get_brand_wcpay_request:ok") {
            // 使用以上方式判斷前端返回,微信團隊鄭重提示:
            //res.err_msg將在用戶支付成功后返回ok,但並不保證它絕對可靠
            _this.$router.push('/orderList')
          } else {
            _this.$router.push('/orderList')
          }
        })
    }
    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();
    }
  }

  if (isAliPay || isTB) {
    console.log('喚起支付寶支付')
    const div = document.createElement('divform');
    div.innerHTML = res1.data;
    document.body.appendChild(div);
    document.forms[0].submit()
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM