2012-08-01 309 views
5

我有一個簡單的Pay Now按鈕,通過按鈕製造商創建的代碼,添加了一個「自定義」隱藏字段來標識它。 我不知道是否有一些額外的隱藏領域,我可以添加到告訴PayPal「這個交易不應該做兩次」。如何防止重複PayPal付款?

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 

    <input type="hidden" name="cmd" value="_s-xclick"> 
    <input type="hidden" name="custom" value="{MYUNIQUEID}"> 
    <input type="hidden" name="hosted_button_id" value="{MYHOSTEDBUTTONID}"> 
    <input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_paynowCC_LG.gif" 
    border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> 
    <img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"> 

</form> 

因爲它是現在這是不可能的,客戶應能夠支付兩次,但我注意到,當沙盒有一個小故障我成功地兩次支付同樣的交易。我絕對想避免的事情。不僅僅是爲了客戶,這可以得到退款,當然,但也因爲我不希望我的數據庫搞砸了,我想避免廣泛的編碼來捕獲重複付款...

回答

12

你想添加一個「發票」參數的唯一標識符; <input type="hidden" name="invoice" value="your unique invoice ID">,並在您的帳戶的「個人資料」>「我的銷售工具」部分中啓用「阻止重複付款」,網址爲www.paypal.com

8

感謝羅伯特! (以上職務)

其實我去到目前爲止,我要問的PayPal商家的技術支持這件事,只是提交我的問題之前,有發現了一個頁面的答案 -

避免重複付款: https://ppmts.custhelp.com/app/answers/detail/a_id/165

不知道,如果你要登錄查看網頁上面,所以我在這裏引用的頁面爲方便:

你可以通過發票號避免重複交易貝寶系統。此功能可用於網站付款 標準版和網站付款專業版(SOAP和NVP)。只要您已將 配置爲阻止重複的發票號碼,PayPal系統 將檢查以確保您通過的發票號碼尚未在您的帳戶中支付 。

示例:已支付發票001,因此如果001再次傳遞到 PayPal帳戶,它將被拒絕。

在您的資料封鎖這個:

座意外付款:您可以防止意外付款的 阻止重複發票編號

  1. 登錄在https://www.paypal.com

  2. 點擊「個人資料」子標籤

  3. 在'Selling Preferences'下點擊'P ayment接收首選項

  4. 選擇‘是的,每張發票ID’,如果你想利用此功能,同時通過了‘發票’變量

  5. 滾動至底部,並點擊‘保存’按鈕塊多支付

要通過對網站付款標準發票號碼,您將 需要一行代碼添加到您的現有按鈕的代碼。你不能 將此代碼添加到最初創建爲加密的按鈕。下面的示例 :

對於網站付款專業,你傳遞參數取決於類型的API調用 你在做。

對於SOAP:InvoiceID

對於NVP:INVNUM

在使用Pro,如果檢測到錯誤 10412將返回一個重複的發票號。有關API錯誤代碼的完整列表, 和有關10412錯誤的詳細信息Click Here

+1

非常詳細,謝謝Paul。 :-) – 2013-07-26 01:29:52