2012-04-26 40 views
0

我正在做一個paypal支付現在按鈕爲我的網站添加可用的信用。貝寶支付現在和返回的變量

我明白現在整個購買和ipn的事情,但我想要做的是,當用戶完成他的工資時,應該有一種方法讓IPN獲取用戶名,以便我可以將信用添加到數據庫。

有沒有辦法將用戶名與事務一起發送,以便它也被返回?謝謝。

+0

我建議您使用加密的按鈕並將PayPal配置爲只接受加密的請求。這有點難,但值得。你的目標是確保人們不能使用較少的金額僞造付款。 – 2012-04-27 00:13:39

+0

您還應該在IPN中執行ping命令以檢查PayPal是否識別您剛收到的參數。這裏的教程:https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_admin_IPNImplementation – 2012-04-27 00:15:12

回答

0

在按鈕參數中,將notify_url變量設置爲最大255個字符的URL。

貝寶將HTTP POST發送到此IP與IPN詳細信息(payment_status,payment_date等)。

在創建按鈕時,將PARAMS添加到此URL,例如http://yourwebsite.com?username_for_credits=john%20doe 。 當PayPal將進行IPN HTTP POST時,您將收回您想要的用戶名。

+0

如果這是你如何使用貝寶,請考慮閱讀我的答案,並使用「自定義」參數。 – 2012-04-26 21:45:54

+0

對於我自己,我爲我在第一次創建按鈕時存儲的交易設置了一個id(以及其他與交易相關的東西)。我有太多的數據不適合那個自定義字段。 – 2012-04-27 00:08:27

1

請不要依賴通知網址。

您可以將字典對象中的'custom'參數發送到Paypal IPN Docs中列出的paypal。

paypal_dict = { 
    "business": "[email protected]", 
    "amount": "10000000.00", 
    "item_name": "name of the item", 
    "invoice": "unique-invoice-id", 
    "notify_url": "http://www.example.com/your-ipn-location/", 
    "return_url": "http://www.example.com/your-return-location/", 
    "cancel_return": "http://www.example.com/your-cancel-location/", 
    "custom": request.user.username, #or you can use request.user.pk 
} 

「自定義」值將被保存貝寶與交易,並在您的IPN對象服務器上。與沒有確定客戶的付款相比,這是一個更好的選擇。