過去有兩次微信支付失敗的場景(http://www.cnblogs.com/sevenun/p/6445743.html)(http://www.cnblogs.com/sevenun/p/6088093.html)
但是現在我居然又遇到了第三種支付失敗的場景。
為了推廣,我們讓一個粉絲比我們多的公眾號幫我們宣傳,通過微信圖文鏈接到我們的網站去,但是因為是從其他公眾號鏈接到我們的支付頁面,所以這是微信不允許的,必須要從我們公眾號進去我們的頁面才能進行支付。
但是安卓手機並不會顯示錯誤,就只會一閃而過,正是因為一位蘋果用戶的告知,我們才知道有“不能跨號支付”的錯誤,所以知道原因后,我們就在支付失敗后跳轉到提示頁面,讓用戶關注我們公眾號並從我們公眾號進入頁面。
function onBridgeReady(){
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
"appId" : $appId, //公眾號名稱,由商戶傳入
"timeStamp" : $timeStamp, //時間戳,自1970年以來的秒數
"nonceStr" : $nonceStr, //隨機串
"package" : $packageValue,
"signType" : $signType, //微信簽名方式:
"paySign" : $paySign //微信簽名
},
function(res){
if(res.err_msg == "get_brand_wcpay_request:ok" ) {
window.location.href = $sendUrl;
} // 使用以上方式判斷前端返回,微信團隊鄭重提示:res.err_msg將在用戶支付成功后返回 ok,但並不保證它絕對可靠。
else if(res.err_msg == "get_brand_wcpay_request:fail") {
// 關閉訂單
$.ajax({
type : 'post',
url : '<c:url value="/close_order" />',
data : {orderId : $orderId},
dataType : 'json',
success : function(data) {
if (data == '1') {
//alert('關閉訂單成功');
} else {
// alert('關閉訂單失敗')
}
}
});
// 跳轉到提示頁面,讓用戶關注公眾號
window.location.href = '<c:url value="/pay_failed" />';
} else {
// 用戶取消支付則關閉訂單
$.ajax({
type : 'post',
url : '<c:url value="/close_order" />',
data : {orderId : $orderId},
dataType : 'json',
success : function(data) {
if (data == '1') {
//alert('關閉訂單成功');
} else {
// alert('關閉訂單失敗')
}
}
});
}
}
);
}
