小程序webview支付

我們項(xiàng)目已在公眾號(hào)上線,目前開(kāi)發(fā)小程序,目標(biāo)是直接采用webview,不需要再開(kāi)發(fā)一次,但是小程序的webview不支持微信支付,只能通過(guò)跳回小程序調(diào)用小程序支付的API,我寫了demo。

具體項(xiàng)目結(jié)構(gòu)如下:


項(xiàng)目結(jié)構(gòu).png

1.首先在vue項(xiàng)目(其他用jQuery也類似)引入jssdk,這樣可以調(diào)用wx.miniProgram的相關(guān)接口

<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>

說(shuō)明一下,src中不引用http域名是我們項(xiàng)目環(huán)境有http和https兩種方式,這樣寫可以根據(jù)服務(wù)器域名動(dòng)態(tài)更改
相關(guān)官網(wǎng)文檔說(shuō)明:


webview接口.png

2.小程序加入webview組件,調(diào)用接口跳轉(zhuǎn)到相關(guān)webview

//事件處理函數(shù)
  toWebview:function(){
    wx.navigateTo({
      url: '/pages/webview/webview',
    })
  },

3.webview處理完相關(guān)業(yè)務(wù)邏輯,需要跳回小程序,攜帶后臺(tái)返回的支付必要的參數(shù)

  //小程序和公眾號(hào)跳轉(zhuǎn)不同頁(yè)面
        navigateToPay: function() {
            if (this.isMiniProgram === true) {
                // alert('小程序')
                //由后臺(tái)協(xié)商好返回的數(shù)據(jù)格式,該代碼僅供參考,不能實(shí)際使用
              const    payParam = {
                    appId: "wxd678efh567hg6787",
                    nonceStr: "5K8264ILTKCH16CQ2502SI8ZNMTM67VS",
                    package: "prepay_id=wx2017033010242291fcfe0db70013231072",
                    signType: "MD5",
                    timeStamp: "1490840662",
                    paySign:"BB2B9BD3F2F8A1CB270C6ACE3D7BDB9"
                };
                // alert(payParam);
                this.navigateToMiniProgram(JSON.stringify(payParam));
            } else {
                alert('公眾號(hào)');
                //原先支付邏輯不用修改;
            }
        }

4.調(diào)用小程序的wx.requestPayment喚起支付,如果不需要顯示頁(yè)面可以寫個(gè)空白頁(yè)面
5.支付完成,處理相關(guān)邏輯。
具體demo點(diǎn)這里

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容