先說明哦,這個只是我遇到的情況,最近在做調用支付寶網頁支付的功能,接觸到了支付寶的沙箱環境,其中要配置兩個URL:
一個是 return_url ,即同步通知調用的地址,也就是用戶掃碼支付成功后跳轉的路徑,這個一般可以選擇跳回項目里的頁面或者單獨跳一個頁面,通知用戶支付成功了就行,記得這個路徑返回的 Map 里的值只有部分有用,不能確認對方是否收款成功,主要還是看下面那個地址返回的Map 里的值;
一個是 notify_url,即異步調用的地址,也是確認此次訂單是否收款成功的重要依據,支付寶發起通知所要請求的路徑,這個一定要是外網能訪問到的,並且項目里不要對該路徑做任何的攔截,例如用戶登錄權限等等,我做的時候就是遇到這個問題了,最后在攔截器里忽略該路徑,才接收通知成功,可能還有別的方法,望指教。確認收款成功的key值是 “ trade_status ”,它對應的值如果是 “ TRADE_SUCCESS ” 或者 “ TRADE_FINISHED ”,代表收款成功,這次訂單結束了 ;
switch (alipayTradeQueryResponse.getTradeStatus()) // 判斷交易結果 { case "TRADE_FINISHED": // 交易結束並不可退款 break; case "TRADE_SUCCESS": // 交易支付成功 break; case "TRADE_CLOSED": // 未付款交易超時關閉或支付完成后全額退款 break; case "WAIT_BUYER_PAY": // 交易創建並等待買家付款 break; default: break; }