1. 程式人生 > >支付寶h5支付,無法調起支付控制元件問題

支付寶h5支付,無法調起支付控制元件問題

問題描述

支付寶回撥的付款頁面,首次回撥後,安卓系統無法調起支付控制元件,需重新重新整理h5頁面。

參考原因

當頁面載入完後會建立 AlipayJSBridge物件,同時會觸發AlipayJSBridgeReady事件,原因可能是當執行 AlipayJSBridge.call(’’)操作時,AlipayJSBridge還沒有建立,所以無法執行。

  //支付寶瀏覽器開啟
				var tradeNo1 = result.data;
				document.addEventListener('AlipayJSBridgeReady', function() {
					AlipayJSBridge.call("tradePay",{
						tradeNO:tradeNo1
					},function(result){
						 if(result.resultCode=='9000'){
								AlipayJSBridge.call('closeWebview');
						 }else{
							 	
						 }
						 
						 
					});
				}, false);
   // 由於js的載入是非同步的,所以可以通過該方法,當AlipayJSBridgeReady事件發生後,再執行callback方法
    function ready(callback) {
         if (window.AlipayJSBridge) {
             callback && callback();
         } else {
             document.addEventListener('AlipayJSBridgeReady', callback, false);
         }
    }

    function tradePay(tradeNO) {
        ready(function(){
             // 通過傳入交易號喚起快捷呼叫方式(注意tradeNO大小寫嚴格)
             AlipayJSBridge.call("tradePay", {
                  tradeNO: tradeNO
             }, function (data) {
                 log(JSON.stringify(data));
                 if ("9000" == data.resultCode) {
                     log("支付成功");
                 }
             });
        });
    }