2013-01-10 134 views
0

我正在使用銀行API在線支付解決方案。如何在繼續使用PHP之前等待回調

當用戶在銀行網站上輸入他的信用卡號碼(因此我不必處理PCI合規性)時,API會對我的一個頁面進行回叫以發送交易的回覆(批准,時間,金額等),然後打電話給我的「返回網址」,將客戶帶回我的網站,但沒有任何信息旁邊的確認號碼。

我有一些信息顯示在由API傳送給回調的「返回URL」上。因此,我決定將回調數據存儲在我的數據庫中,以便稍後在「返回URL」中檢索它。

我如何確定在「返回URL」上回調完成執行其操作並且我可以開始檢索數據庫中的數據?

+0

您是否有理由懷疑銀行在完成交易之前可能會重定向到您的網站? –

+0

@ÁlvaroG.Vicario:由於我正在做一些關於回調的數據庫工作,我不想在完成所有事情之前冒險到達我的網站。我認爲服務器上的滯後可能會導致問題。 – Ebpo

+1

除非您檢查數據,否則無法確定。 = /所以,只需在數據庫中創建一個「完成」字段並確保回調中的最後一個操作正在更新此字段。當您在退貨頁面檢查其價值時,您可以決定流程是否完成。 – Jules

回答

1

很難說如果不知道API,但肯定你必須能夠通過銀行API檢查確認號碼來檢查它是一個「真實」的確認號碼。

檢查您的「返回URL」,然後將收到的信息與初始回撥時存儲在數據庫中的信息進行匹配。如果信息不匹配或不在您的數據庫中,請拋出「等待/處理」.gif並每10秒重試一次,直到您收到結果爲止,否則處理超時。

+0

好的,這就是我到目前爲止所做的,想知道是否存在「更清潔」的解決方案。非常感謝! – Ebpo

+0

但有時這可能需要數小時的信用卡和paypal的日子。 – GreenRover

0

正常情況下,您總是在reutrn url上顯示客戶的成功,但不提供任何下載。 產品下載或確認電子郵件的信息將從回叫網址觸發。

因爲仍然無法等待api回調,所以您只能等待回調並處理訂單。

相關問題