使用PHP进行Paypal订阅检查非托管按钮

时间:2013-08-06 09:37:44

标签: php paypal subscription

我正在为我正在开发的webapp实现定期付款存在一个特殊问题。我无法使用托管的paypal订阅按钮,因为付款金额是可变的。所以,我使用了非托管解决方案:

<form action="https://www.sandbox.paypal.com/us/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick-subscriptions">
<input type="hidden" name="business" value="business@email.com">
<input type="hidden" name="item_name" value="Some item"/>
<input type="hidden" name="return" value="return_url">
<input type="hidden" name="cancel_return" value="cancel_url">
<input type="hidden" name="notify_url" value="notification_url">

<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="no_shipping" value="1">
<input type="image" src="http://www.paypal.com/en_US/i/btn/btn_subscribe_LG.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
<input type="hidden" name="a3" value="variable_amount">
<input type="hidden" name="p3" value="1"> 
<input type="hidden" name="t3" value="M">
<input type="hidden" name="rm" value="2">
<input type="hidden" name="src" value="1">
<input type="hidden" name="sra" value="1">
<input type="hidden" name="custom" value="planid1,planid2"/>
</form>

现在,我需要每个月使用已支付的cron进行检查,并根据该内容生成内容。

从互联网上的讨论来看,很明显paypal不会为订阅发送txn_id。那么,我该如何检查用户是否在下个月付款? 我想到的一件事是IPN监听器,但它是否可以使用非托管按钮?与此完全混淆。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

IPN将是最佳选择。使用IPN,您的系统将在创建配置文件时,配置文件再次向用户收费,配置文件被取消或未能收费时通知您。每次收费时,您都会在IPN中获得交易ID。