測試地址
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¶ms=%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"}