天天看點

微信公衆号中調用支付寶手機網站支付

    在阿裡官網中有解決微信公衆号中調用支付寶手機網站支付的方案,就是使用官方提供的ap.js和pay.html,當然,阿裡也給了get和post相關的例子:

微信公衆号中調用支付寶手機網站支付

    我們以demo_post.htm為例:

微信公衆号中調用支付寶手機網站支付

    可以看到script中處理了各個參數,但是這種方式後端不能使用平台提供的SDK完成簽名,因為SDK簽名會生成form表單,是以各個參數需要自己寫代碼完成拼接和簽名。需要注意的是:手動簽名極可能出現問題!

    我推薦使用SDK完成簽名(官網上的demo可以原封不動),然後修改demo_post.htm檔案可以實作微信公衆号中用本地浏覽器打開支付寶。

微信公衆号中調用支付寶手機網站支付

(圖檔中的alipayForm是個div)

obj.alipay=function(){
	qmpur.ajax({
		url:qmpur.Configs.userBasePath+"/common/pay",
		data: {
			orderNo: orderNo,
			payMethod:2,
			orderType:2,
			token:qmpur.Configs.token
		},
		dataType: 'json',
		type: 'post',
		headers: {
			'Content-Type': 'application/json;charset=utf-8'
		},
		success: function(data) {
			var form = data.requestForm  
	        $("#alipayForm").append(form);
	        $("#alipayForm script").remove(); 
	        var queryParam = '';
	        Array.prototype.slice.call(document.querySelectorAll("input[type=hidden]")).forEach(function (ele) {
	            queryParam += ele.name + "=" + encodeURIComponent(ele.value) + '&';
	        });
	        var url = document.getElementsByName("punchout_form")[0].action+'&'+queryParam;
	        _AP.pay(url); 
		},
		error: function(xhr, type, errorThrown) {
			mui.alert(i18n_com_pay_fail, i18n_com_warn);
		}
	});
};
           

    公衆号其實可以看成是微信的内置浏覽器,你可以引導使用者選擇右上角的選項(三個點),然後選擇用本地浏覽器打開,注意支付寶回調時授權的問題。

    感謝某個路人給我提供思路~

繼續閱讀