直接把該代碼放到PHP服務器下,直接訪問index.php.
一、文件列表:
alipay_config.php (基本參數配置頁面,填寫商家的支付寶安全校驗碼,合做id,支付寶賬號等內容)
index.php (提供給商家的接入頁面,包含了物流信息,商品信息等內容)
return_url.php (跳轉頁面,買家支付成功後跳轉的頁面,僅當買家支付成功後跳轉一次。)
notify_url.php (異步通知,下單成功後,支付寶服務器通知商戶服務,並把這筆訂單的狀態通知給商戶,商戶根據返回的這筆訂單的狀態,修改網站訂單的狀態,好比等待買家付款狀態,買家已經付款等待賣家發貨.....)
alipay_service.php 支付核心類文件(建議不要修改)
alipay_notify.php 返回核心類文件(建議不要修改)
二、文件內容說明:
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(其餘快遞)
三、return_url 與 notify_url 的區別
買家付款成功後,若是接口中指定有return_url ,買家付完款後會跳到 return_url所在的頁面,這個頁面能夠展現給客戶看,這個頁面只有付款成功纔會跳轉.
notify_url: 服務器後臺通知,這個頁面是程序後臺運行的(買家和賣家都看不到),買家付完款後,支付寶會調用notify_url這個頁面所在的頁面並把相應的參數傳 遞到這個頁面,這個頁面根據支付寶傳遞過來的參數修改網站訂單的狀態,更新完訂單後須要在頁面上打印出一個success 給支付寶,若是反饋給支付寶的不是success,支付寶會繼續調用這個頁面.
流程: 買家付完款(trade_status=WAIT_SELLER_SEND_GOODS)--->支付寶通知notify_url--->如 果反饋給支付寶的是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您們能夠找等合同正式生效後再查詢(獲取方法:登錄簽約的
支付寶帳戶-?點擊「商家服務」,就能夠看到)
--處理支付寶返回通知失敗幾種狀況:
一、SIGN與MYSIGN不等,responseTxt爲invalid命令參數不對,該錯誤 是因爲合做夥伴ID(parnterID)與安全校驗碼(key)未填,或填錯致使
二、SIGN與MYSIGN相等,responseTxt爲false,是因爲服務器、端口等因素致使,這時請檢查
a.防火牆是否屏蔽支付寶的IP(支付寶鎖使用的IP地址是:121.0.26.11,範圍:121.026.0~255)
b.端口80或者443端口開放沒有或者被其餘服務佔用
c.以上若是都沒有問題,可能會是網絡驗證超時致使(支付寶驗證時間是1分鐘,SIGN與MYSIGN不等會致使超時),須要等待網絡穩定再肯定問題
三、SIGN與MYSIGN不等,responseTxt爲true,此時只有兩種狀況會出現:
其一:傳遞參數時格式不符合(例如:帶自定義參數)致使簽名不一致
其二:編碼格式出現問題,這時候請檢查服務器編碼和網站編碼是否一致,能夠寫編碼過濾解決也能夠在返回頁面強制編碼轉換php