#( 1)用戶向商城網站發起確認訂單的請求(例如點擊立即購買)
(2)商城網站接收到請求保存訂單資料到資料庫或其他儲存媒體
(3)返回訂單確認頁面,頁面上應該顯示訂單金額等資訊(點擊立即購買後的訂單介面)
(4)用戶確認支付,發起支付請求。註:支付請求是發送到支付網關(例如支付寶、網銀線上)而不是發送到商城網站。
(5)顯示付款頁面(這個介面就是支付寶的同一介面了)
(6)使用者填寫認證資訊提交(掃碼相對方便些)
(7)這裡有兩個步驟一個是扣款成功後頁面跳到付款結果頁面(展示給用戶),另一個是支付通知,這兩步驟沒有先後順序可能同時執行,商城網站接收到支付通知後根據驗證規則驗證資訊的有效性,並作出對應的更改操作(例:有效則更改訂單為已付款狀態,無效則為未支付狀態)。
以支付寶為例:如果實現在網站中整合支付寶介面,首先要有一個支付寶帳號,接下來向支付寶申請線上支付業務,簽署協議。協議生效後有支付寶一方會給網站方一個合作夥伴ID,和安全校驗碼,有了這兩樣東西就可以按照支付寶接口文檔開發支付寶接口了,在上圖的幾個步驟中只有4和7兩個步驟在商城與支付網關之間有資訊互動。在步驟4中指將資料傳送至支付網關(支付寶),在步驟7中是的通知驗證部分,驗證網關請求網站某地址,網站按驗證規則對資訊進行驗證記錄並作出回應,我們幾乎在開發任何支付接口時,重點是這兩部分的開發,要明白支付接口原理,開發支付接口就不難了。需要額外強調的是,如果我們想要測試整個流程,那麼我們需要有一個商家帳號(簽約帳號),就是需要向支付寶提交營業執照等材料,經過支付寶審核通過後,可以進行收款的帳號。 (這個一般個人很少有,開發時可以用公司名申請一個)
接口簡介與測試
支付寶目前提供了,擔保交易、標準即時到帳、雙功能等幾種接口,只是在功能上有些差異,網站集成方式是一樣的。以標準即時到帳介面為例,在與支付寶簽署協議後(即成為正式商家後),還需要幾個步驟才能完成整合。針對每種功能,支付寶的開發者平台已經列舉了詳細的步驟以及案例展示。關於如何簽約請造訪前往支付寶認證
1.用戶可以開啟手機錢包選擇「掃一掃描”,對準螢幕掃碼,待手機提示付款後選擇支付工具輸入密碼支付即可;
2.如果不想使用手機支付,可以點擊上圖所示頁面右側的“登入帳號付款”,輸入支付寶帳號和密碼登入。
請參考支付寶DSA、RSA、MD5 三種簽名方式,建議使用支付寶提供的官方工具,點此前往。
(1)下載官方檔案(demo), 點擊下載。
(2)設定DEMO中的開發者資訊,找到目錄下alipay.config.php檔案並打開,內容如下:
(3)在設定檔中找到以下參數進行對應配置:
(4)若您選擇MD5簽章方式,請根據MD5方式配置:詳見第三步驟
(5)跟我們的php程式碼連接,我們可以看到還有一個名為alipayapi.php的文件,這個文件就是接受訂單資訊的,透過post形式將訂單參數傳遞到這個文件,這個文件已經引用了alipay.config.php,所以大家的基本配置要正確,當成功接受參數後,會跳到支付寶預先寫好的支付介面。
#(6)接受付款結果:設定同步回傳(同步跳轉通知)和非同步回調(非同步通知)。在設定檔中有return_url和notiry_url兩個參數,可分別配置到DEMO中的return_url頁面和notify_url頁面。同步返回使用GET方式獲取,非同步通知使用POST方式取得;同步返回驗證有1分鐘逾時,非同步通知驗證沒有時間限制。 return_url頁面和notify_url頁面都會將資料使用AlipayNotify.verify() 驗簽方法驗證。
(7)最終的判斷:透過傳回參數中的trade_status欄位(交易狀態)判斷並可寫入執行業務邏輯程式碼。
以上是php線上支付功能的實現(支付寶)的詳細內容。更多資訊請關注PHP中文網其他相關文章!