问题描述
支付宝回调的付款页面,首次回调后,安卓系统无法调起支付控件,需重新刷新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);
支付宝官方源码
创建订单+JSAPI唤起收银台支付
// 由于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("支付成功");}});});}