支付寶異步通知notify_url 與 同步通知return_url的區別

1、文件列表:
alipay_config.php    (基本參數配置頁面,填寫商家的支付寶安全校驗碼,合作id,支付寶帳號等內容)
index.php            (提供給商家的接入頁面,包含了物流信息,商品信息等內容)
return_url.php       (跳轉頁面,買家支付成功後跳轉的頁面,僅當買家支付成功後跳轉一次。)

notify_url.php       (異步通知,下單成功後,支付寶服務器通知商戶服務,並把這筆訂單的狀態通知給商戶,商戶根據返回的這筆訂單的狀態,修改網站訂單的狀態,比如等待買家付款狀態,買家已經付款等待賣家發貨.....)

alipay_service.php    支付核心類文件(建議不要修改)
alipay_notify.php     返回核心類文件(建議不要修改)


2、文件內容說明: 
alipay_config.php 文件 
-- show_url     = ""                     '商戶網站的網址。
-- seller_email    = ""                     '請填寫簽約支付寶賬號,
-- partner    = ""             '填寫簽約支付寶賬號對應的partnerID,
-- key        = ""    '填寫簽約賬號對應的安全校驗碼
如何獲取支付寶帳號,安全校驗碼和partner 
'登陸 www.alipay.com 後, 點商家服務,可以看到支付寶安全校驗碼和合作id,導航欄的下面 
notify_url                   交易過程中服務器通知的頁面 要用 http://格式的完整路徑,例如     http://www.alipay.com/alipay/notify_url.php 注意文件位置請填寫正確
return_url                   付完款後跳轉的頁面 要用 http://格式的完整路徑, 例如          http://www.alipay.com/alipay/return_url.php 注意文件位置請填寫正確。

index.php 文件
按照alipay_config.php文件進行配置,然後修改商品名稱,商品描述,外部商家訂單號等
logistics_fee             物流配送費用
logistics_payment         物流配送費用付款方式:SELLER_PAY(賣家支付)、BUYER_PAY(買家支付)、                                 BUYER_PAY_AFTER_RECEIVE(貨到付款)
logistics_type            物流配送方式:POST(平郵)、EMS(EMS)、EXPRESS(其他快遞)

3、return_url 與 notify_url 的區別
買家付款成功後,如果接口中指定有return_url ,買家付完款後會跳到 return_url所在的頁面,這個頁面可以展示給客戶看,這個頁面只有付款成功纔會跳轉.

notify_url:服務器後臺通知,這個頁面是程序後臺運行的(買家和賣家都看不到),買家付完款後,支付寶會調用notify_url這個頁面所在的頁面並把相應的參數傳遞到這個頁面,這個頁面根據支付寶傳遞過來的參數修改網站訂單的狀態,更新完訂單後需要在頁面上打印出一個success給支付寶,如果反饋給支付寶的不是success,支付寶會繼續調用這個頁面. 
流程:買家付完款(trade_status=WAIT_SELLER_SEND_GOODS)--->支付寶通知notify_url---& gt;如果反饋給支付寶的是success(表示成功,這個狀態下不再反饋,如果不是繼續通知,一般第一次發送和第二次發送的時間間隔是3分鐘)
剩下的過程,賣家發貨,買家確認收貨,交易成功都是這個流程


常見問題:
1.根據代碼實例和開發文檔熟悉接口,將代碼實例的相關參數信息填寫完整(可以虛擬參數),在本地測試(不上傳到服務器)支付寶接口。如果沒有任何問題再將接口根據實際業務做到網站或者網站後臺。
2.測試時您們需要兩個支付寶賬戶,其中一個必須實名認證並且保證有一定的金額,以便測試時使用。另外一個帳戶可以作爲收款方(賣家)(針對於支付接口)
3.如果做支付寶訂單信息和您們後臺數據同步請集成時做數據返回處理,本地測試可以使用同步測試,如果在服務器上測試,可以通過異步來做也可以(支付寶有兩種數據返回處理:同步返回和異步返回)。
同步返回(return_url)和異步返回(notify_url)的區別【return_url和notify_url參數必須是兩個返回處理文件的絕對路徑】?
答:同步返回處理(return_url):是一種可視化的返回,ie頁面跳轉通知,只要支付成功,支付寶通過get方式跳轉到這個地址,並且帶有參數給這個頁面。客戶獲取信息受到買家操作的影響。如果買家支付完
成後客戶服務器響應比較慢,買家在顯示支付寶提示的“即時到賬支付成功“時關閉頁面,那麼客戶網站是獲取不到信息,我們這邊稱爲” 掉單“。而且這個返回處理是一次性調取,即支付成功後才調取同步返回處理。
異步返回處理(notify_url):它的數據交互是通過服務器間進行數據交互,必須將其放置在服務器上(公網)測試,服務器post消息到異步返回處理頁面,需要客戶技術在異步返回處理頁面處理相關的數據處理
,然後每一步操作都要返回給支付寶success(不能包含其他的HTML腳本語言,不可以做頁面跳轉。)這個返回處理如果集成OK,那麼基本不會出現掉單,因爲支付寶會在24小時之內分6~10次將訂單信息返回
個給客戶網站,直到支付寶捕獲success。
備註:同步返回處理則會受到買家操作的影響:
假如買家在操作的時候,支付寶完畢進入支付寶提示成功頁面,這個時候由於服務器相應比較慢,那麼買家有可能會關閉這個頁面,這個時候您們就會接受不到支付寶返回的信息,還有有些網銀支付後也不會調取支付寶的同步返
回處理頁面,這樣您在同步做數據處理同樣接受不到數據。
備註:
請注意:現在您們集成的時候先按照提供給您們的測試賬戶的ID來做,至於正式賬戶的ID您們可以找等合同正式生效後再查詢(獲取方法:登陸簽約的 
支付寶賬戶-?點擊“商家服務”,就可以看到)

--處理支付寶返回通知失敗幾種情況:
1、SIGN與MYSIGN不等,responseTxt爲invalid命令參數不對,該錯誤 是由於合作伙伴ID(parnterID)與安全校驗碼(key)未填,或填錯導致
2、SIGN與MYSIGN相等,responseTxt爲false,是由於服務器、端口等因素導致,這時請檢查
a.防火牆是否屏蔽支付寶的IP(支付寶鎖使用的IP地址是:121.0.26.11,範圍:121.026.0~255)
b.端口80或者443端口開放沒有或者被其他服務佔用
c.以上如果都沒有問題,可能會是網絡驗證超時導致(支付寶驗證時間是1分鐘,SIGN與MYSIGN不等會導致超時),需要等待網絡穩定再確定問題
3、SIGN與MYSIGN不等,responseTxt爲true,此時只有兩種情況會出現:
其一:傳遞參數時格式不符合(例如:帶自定義參數)導致簽名不一致
其二:編碼格式出現問題,這時候請檢查服務器編碼和網站編碼是否一致,可以寫編碼過濾解決也可以在返回頁面強制編碼轉換

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章