2012-05-08 126 views
5

上午有很多的麻煩我的腦袋解決此寶付款的東西...貝寶訂閱PDT/IPN - 請

如何確認用戶已成功註冊訂閱?

我知道0關於IPN,但例如:如果用戶用[email protected]註冊我的網站,但使用paypal帳戶[email protected]支付,那麼我如何匹配用戶。

我讀過PDT不發送重複(訂閱)付款的交易ID(tx)是否正確?

只需要一切幫助...誠實,輕鬆:)

謝謝。

回答

3

是的,有時很難理解貝寶及其所有文件,但對於任何種類的訂閱,我會推薦貝寶IPN。您在您的PayPal帳戶中設置IPN URL,例如:http://www.domain.com/ipn.php。然後創建在PayPal帳戶的訂閱按鈕,在這裏你可以設定的價格,經常性的價格等

更多關於貝寶IPN你可以在這裏閱讀: https://www.paypal.com/ipn

在創建PayPal按鈕,你還可以添加一些自定義字段這可以幫助您確定哪個客戶真正付款。因此,例如,您有一個用戶數據庫,並且存在userid = 100,username = Nickname和[email protected]的用戶。現在您可以決定添加userid = 100作爲自定義字段並將其添加到paypal按鈕。例如CUSTOM = 100。

ipn.php在這種情況下是一個處理所有邏輯的腳本。當用戶付款時,Paypal將任何狀態發送到http://www.domain.com/ipn.php(您在PayPal賬戶中將其設置爲IPN URL)。所以在這種情況下,ipn.php需要檢查付款是否完成,狀態是否正常。然後檢索一個CUSTOM字段($ _POST ['custom']),在這種情況下爲100(userid)。然後更新您的數據庫與用戶,並以某種方式標記該用戶支付當然,如果狀態是完成。

希望這會有所幫助。但在這種情況下,從哪個PayPal賬戶用戶支付並且哪些在您的數據庫中註冊並不重要。所有你需要的是你以某種方式將它鏈接在一起。在這種情況下,用戶名或類似的東西。

+0

在使用沙盒測試的情況下,哪些返回的URL和帳戶應該使用?謝謝 –

+0

是的,這是另一種痛苦:)你註冊一個新的沙箱帳戶使用您的真實電子郵件地址(https://developer.paypal.com/)。之後,您將您的電子郵件和密碼登錄到paypal SANDBOX帳戶,然後您可以在那裏創建不同的TEST帳戶。您可以創建一個商業賬戶,例如一個或多個個人賬戶。請記住,這只是TEST帳戶,但真正用作真實帳戶。一旦你進入Pay​​Pal沙箱,點擊新建立的商業賬戶,並設置IPN網址,就像真正的Paypal賬戶一樣。您也可以在那裏生成付款按鈕。 – StudioArena

+0

然後創建至少一個TEST用戶的帳戶,以便您可以嘗試付款是否真的有效。測試時,只需將該按鈕的HTML源代碼從business = YOUR_REAL_EMAIL_or_YOUR_REAL_BUSINESS_CODE更改爲商業TEST帳戶(從PayPal沙箱)的電子郵件地址或業務代碼即可。同樣在您的IPN文件(ipn.php - 您將其設置爲IPN URL)中,您需要更改將數據發送回PayPal的URL。所以,而不是真正的貝寶URL你使用沙箱網址。點擊這裏查看PHP示例:https://cms.paypal.com/cms_content/US/en_US/files/developer/IPN_PHP_41.txt – StudioArena

2

如果你想實現貝寶IPN和您的客戶不要使用相同的電子郵件從我的經驗,你可以使用窗體驗證用戶

  • 用戶登錄您的網站上有[email protected]
  • 用戶點擊您的項目,並與[email protected]支付
  • 他付出,才能將他重定向到一個表單,他們可以與網站賬戶
  • 是用者自付那麼你的IPN將每次合併Paypal帳戶後由他提供的信息覆蓋
  • 您應該保存他的付款信息以備後用。