Alipay 支付喚起 h5 測試

測試地址

https://recharge.apps.oppomobile.com/recharge-center/recharge/?from=message

 

 try {

    //喚起客戶端快捷參數
    var data = {"requestType":"SafePay","fromAppUrlScheme":"alipays","dataString":"h5_route_token=\"RZ41QkLuzjZPgEfvTaAM2Vses2JgbtmobilecashierRZ41\"&is_h5_route=\"true\""};

    window.setTimeout(function(){
              _AP.pay(data);
          }, 50);
}catch(e){
    window.console && window.console.log('e.name:' + e.name + ';e.message:' + e.message)
    }
/**
         * open client
         */
        _AP.open = function (params) {
            if (!domLoaded && (ua.indexOf('360 aphone')>-1 || canIntent)) {
                var arg = arguments;
                delayToRun = function () {
                    _AP.open.apply(null, arg);
                    delayToRun = null;
                };
                return;
            }

            if (locked) {
                return;
            }
            locked = true;

            var o;
            if (typeof params === 'object') {
                o = {
                    'ios': encodeURIComponent(JSON.stringify(params)),
                    'android': encodeURIComponent(params.dataString)
                };
            } else {
                console.error('params error, pls use JSON format!')
            }

            // params fault tolerance
            if (typeof o.ios !== 'string') {
                o.ios = '';
            } else if(typeof o.android !== 'string') {
                o.android = '';
            }

            // nonsupport Android intent
            if (!canIntent) {
                if(isAndroid) {
                    var alipaysUrl = 'alipays://platformapi/startApp?appId=20000125&orderSuffix=' + o.android +'#Intent;scheme=alipays;package=com.eg.android.AlipayGphone;end';
                }
                //fix for iOS QQ browser
                else if (ua.indexOf('mqqbrowser') > -1) {
                    var alipaysUrl = 'alipay://alipayclient/?' + o.android;
                }
                else {
                    var alipaysUrl = 'alipay://alipayclient/?' + o.ios;
                }
                                    var indentUA = ua.indexOf('qq/') > -1 || ( ua.indexOf('safari') > -1 && ua.indexOf('os 9_') > -1 ) || ( ua.indexOf('safari') > -1 && ua.indexOf('os 10_') > -1 ) || ( ua.indexOf('safari') > -1 && ua.indexOf('os 11_') > -1 ) || ( ua.indexOf('safari') > -1 && ua.indexOf('os 12_') > -1 ) || ( ua.indexOf('safari') > -1 && ua.indexOf('os 13_') > -1)
                                if (indentUA) {
                    var openSchemeLink = document.getElementById('openSchemeLink');
                    if (!openSchemeLink) {
                        openSchemeLink = document.createElement('a');
                        openSchemeLink.id = 'openSchemeLink';
                        openSchemeLink.style.display = 'none';
                        document.body.appendChild(openSchemeLink);
                    }

                    //openSchemeLink.href = alipaysUrl;
                    // oppo瀏覽器兼容寫法
                    openSchemeLink.onclick = function() {
                                                  window.location.href = alipaysUrl;
                                            };

                    // trigger click
                    openSchemeLink.dispatchEvent(customClickEvent());
                } else if(isOriginalChrome) {
                    if(0 === 0) {
                        // location.href = alipaysUrl;
                        // chrome下喚起客戶端的同時頁面還會關閉掉,導致H5不能正常跳轉
                        window.needCountDown = false;
                        if(!$('.J-startapp').length){

                          clientBtn = '<div class="result-botton"><a class="J-startapp am-button am-button-blue" href="' + alipaysUrl + '">使用支付寶App支付</a></div>'
                          $('.J-h5pay').text('繼續瀏覽器支付').parent().before(clientBtn);
                        }else {

                          $('.J-startapp').attr('href', alipaysUrl);
                        }
                    }
                } else {
                    var ifr = document.createElement('iframe');
                    ifr.src = alipaysUrl;
                    ifr.style.display = 'none';
                    document.body.appendChild(ifr);
                }
            }
            //support Android intent
            else {
                var packageKey = 'AlipayGphone';
                var intentUrl = 'alipays://platformapi/startApp?appId=20000125&orderSuffix='+o.android+'#Intent;scheme=alipays;package=com.eg.android.'+ packageKey +';end';

                var openIntentLink = document.getElementById('openIntentLink');
                if (!openIntentLink) {
                    openIntentLink = document.createElement('a');
                    openIntentLink.id = 'openIntentLink';
                    openIntentLink.style.display = 'none';
                    document.body.appendChild(openIntentLink);
                }

                //openIntentLink.href = intentUrl;
                // oppo瀏覽器兼容寫法
                openIntentLink.onclick = function() {
                    window.location.href = intentUrl;
                };

                // trigger click
                openIntentLink.dispatchEvent(customClickEvent());
            }

            setTimeout(function () {
                locked = false;
            }, 2500)
        }

 

if (ua.indexOf('mqqbrowser') > -1) {
    var alipaysUrl = 'alipay://alipayclient/?' + o.android;
} else {
    var alipaysUrl = 'alipay://alipayclient/?' + o.ios;
}

 

o = {  
  'ios': encodeURIComponent(JSON.stringify(params)),
  'android': encodeURIComponent(params.dataString)
};  
得到參數

{"requestType":"SafePay","fromAppUrlScheme":"alipays","dataString":"h5_route_token=\"RZ41QkLuzjZPgEfvTaAM2Vses2JgbtmobilecashierRZ41\"&is_h5_route=\"true\""}

IOS

URL 編碼後 params

%7b%22requestType%22%3a%22SafePay%22%2c%22fromAppUrlScheme%22%3a%22alipays%22%2c%22dataString%22%3a%22h5_route_token%3d%5c%22RZ41QkLuzjZPgEfvTaAM2Vses2JgbtmobilecashierRZ41%5c%22%26is_h5_route%3d%5c%22true%5c%22%22%7d

拼接後ios

alipay://alipayclient/?%7b%22requestType%22%3a%22SafePay%22%2c%22fromAppUrlScheme%22%3a%22alipays%22%2c%22dataString%22%3a%22h5_route_token%3d%5c%22RZ41QkLuzjZPgEfvTaAM2Vses2JgbtmobilecashierRZ41%5c%22%26is_h5_route%3d%5c%22true%5c%22%22%7d

Android

URL 編碼後 dataString

h5_route_token%3d%5c%22RZ41QkLuzjZPgEfvTaAM2Vses2JgbtmobilecashierRZ41%5c%22%26is_h5_route%3d%5c%22true%5c%22

拼接後

alipay://alipayclient/?h5_route_token%3d%5c%22RZ41QkLuzjZPgEfvTaAM2Vses2JgbtmobilecashierRZ41%5c%22%26is_h5_route%3d%5c%22true%5c%22

 

查詢支付狀態

POST

https://mclient.alipay.com/h5/h5RoutePayResultQuery.json

_input_charset=utf-8&params=%7B%22server_param%22%3A%22emlkPTE5O25kcHQ9MGY5ZDtjYz15%22%7D&session=RZ544mO7vopHoKusYv7i2OgnyGOBS7mobilecashierRZ54

{"biztype":"merchant","control_type":"h5_route_need_pay_query","data":{"dismisstime":2000},"isSuccess":"true","is_merchant":"Y","params":{},"partnerId":"2088311951685799","session":"RZ41QkLuzjZPgEfvTaAM2Vses2JgbtmobilecashierRZ41","status":"query_result","success":true,"time":"5","vcontrol":"v5"}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章