2012-01-18 112 views
3

我需要爲我的客戶在網站上設置paypal自動續訂。 實際上客戶每月付款將獲得30天的網站訪問權限。PHP和PayPal IPN訂閱和定期付款

如果月度自動付款沒問題,我們可以將「網站訪問」天數增加30天。 如果沒有,它不會在客戶帳戶中添加更多天數。

這意味着我需要從我自己的網站運行一個腳本來檢查和增加或停止每次汽車付款後的客戶「網站訪問」天。

我們可以這樣設置貝寶自動更新嗎? 是否有任何方法在每次自動更新後運行腳本(mywebsite.com/renewalscript.php?customerid=123&payment=ok)? 還是你有任何其他想法來克服這一點?

回答

5

一個簡單的方法可能是有一個valid_until日期列或其他東西。當用戶試圖查看內容時,只需檢查該字段並查看他們是否應該能夠查看內容。然後在IPN監聽器中,您可以在收到良好付款的30天后推送日期。

如果您在創建IPN偵聽器時需要幫助,可能會發現我的教程很有用。

2

AFAIK,每獲得一筆成功的認購費,您都可以通過IPN獲得信息。 「你需要運行的腳本」是IPN腳本。如果PayPal通過IPN通知您,您的IPN腳本需要處理請求/響應,如果有效,請在數據庫中設置您的參數。這一切都是在您的網站上的IPN處理程序腳本中完成的。如果您發送請求的時間太晚,貝寶不接受它並稍後發送新的請求,請先記住在對錶格進行任何本地更新之前先回答此腳本中的PayPal請求。

示例代碼

3

您可以通過監聽IPN的時候txn_typesubscr_eot做到這一點見https://cms.paypal.com/cgi-bin/marketingweb?cmd=_render-content&content_ID=developer/library_code_ipn_code_samples。訂閱失敗或被取消時,您可以禁止訪問。

這個問題說明了一點關於subscr_eotSubscriptions with Paypal IPN

我使用這個類:PHP Paypal IPN Integration Class 和檢查:

if($p->ipn_data['txn_type'] == 'subscr_eot')

然後設置其status0以禁止訪問。

+0

這是真的,subscr_ *狀態是老樣子?我試圖得到這個答案。 http://stackoverflow.com/questions/13855287/parsing-paypal-subscription-ran-out – Volomike 2012-12-17 21:12:09