2014-01-28 87 views
0

我有一個asp.net應用程序PayPal失敗通知

用戶可以購買物品和/或升級現有的服務。我使用PayPal處理付款。

當訂單被放置時,我把訂單細節放入一張表作爲記錄。我也這樣做,以便如果用戶重新訪問我的頁面,我檢查該表中的一個標誌,告訴他們是否已收到付款。

如果沒有收到,我會在我的網頁上顯示一條消息,告訴他們他們已經申請並升級,我們目前正在等待付款。

我還禁用該用戶的任何未來購買,以便它們不會升級兩次(或更多次)。

現在,我發現當用戶重定向到PayPal進行購買時,支付可能會失敗,或者他們可能會關閉網頁。

在這種情況下,用戶將無法升級,除非他們向我發送支持電子郵件。

什麼是最佳實踐?等待一段時間,如果沒有付款,然後允許用戶再次嘗試或堅持支持電子郵件路線?

如果最好等待一段時間什麼是可以接受的等待時間?

我使用的表單值法的回發模仿PayPal的支付:

https://www.paypal.com/cgi-bin/webscr 

回答

1

你可以做什麼。

每次用戶準備離開你的頁面,並移動到貝寶支付,您創建

  1. 克隆他們的訂單
  2. 與克隆爲了連接新的唯一ID的。

因此,如果一個訂單如果失敗,用戶在任何時候回來都會找到一個新的集合「訂單」+「唯一ID」。有了這2個元素可以進行最終付款。

您最終可能會得到兩個或樹或更多的克隆訂單,但根據我的經驗,因爲這是我真正做的,很少見,並且它對您的客戶和您是安全的。

另請注意,貝寶每個訂單隻接受一個唯一的ID。如果一個ID失敗,那麼你必須創建一個新的ID。

您發送給貝寶的唯一身份證件將轉至invoice參數。 所有參數的手冊是這pdf - PayPal Payments Standard Intergration Guide ...有更多的PDF格式的貝寶...

+0

嗨,感謝您抽出時間發表評論。關於「克隆」訂單,我已經遵循了你的想法。這正是我現在正在做的。 1件事,但是你爲獨特的身份證傳入了什麼樣的形式?我正在使用自定義字段來指定一個ID,但它對於那個特定的客戶端始終是相同的。 –

+1

@AndrewSimpson獨特的訂單ID ...必須是不同的,也許編碼一些如何trys,用這個指定id,你說,也許你可以有'AAA-BBBB-CCC-2'當-2是第二次嘗試。 – Aristos

+0

嗨,但唯一ID的表單字段名稱是什麼? –