Paypal 通过贝宝确认付款的最简单方法?

Paypal 通过贝宝确认付款的最简单方法?,paypal,paypal-ipn,Paypal,Paypal Ipn,从PayPal获得反馈以确认您的客户已付款的最佳方式是什么?看起来答案是IPN——如果是,我接下来的问题是,我可以只为特定的按钮启用IPN吗?我不希望PayPal为不需要任何IPN集成的购买ping我的IPN侦听器 我非常喜欢敏捷和雅格尼,因此我不想做任何不必要的事情。你应该阅读PayPal提供的。要使用IPN,最简单的方法是为要跟踪的交易设置invoiceid。在IPN侦听器页面中,您将获得IPN_数据,其中一个字段是发票。使用此id,您应该从自己的交易数据库获取数据,然后更改状态以反映Pay

从PayPal获得反馈以确认您的客户已付款的最佳方式是什么?看起来答案是IPN——如果是,我接下来的问题是,我可以只为特定的按钮启用IPN吗?我不希望PayPal为不需要任何IPN集成的购买ping我的IPN侦听器

我非常喜欢敏捷和雅格尼,因此我不想做任何不必要的事情。

你应该阅读PayPal提供的。要使用IPN,最简单的方法是为要跟踪的交易设置
invoice
id。在IPN侦听器页面中,您将获得
IPN_数据
,其中一个字段是
发票
。使用此id,您应该从自己的交易数据库获取数据,然后更改状态以反映PayPal中的付款状态

在我的代码中,通常我将状态设置为
未支付
,将用户引导到paypal进行支付,在IPN listener中,我将状态设置为
已支付


PayPal提供,您可以立即开始。您还可以在中查看其他PayPal文档。

您可以轻松地在按钮参数中包含要用于的IPN侦听器

如果您在PayPal的网站上没有设置默认位置,那么您的IPN侦听器将只对那些设置了一个位置的按钮进行ping

讨论中的PayPal表单变量是“notify_url”

这里是一个订阅按钮的示例,但对于其他任何东西都是相同的变量

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
    <input type="image" src="https://www.paypal.com/en_GB/i/btn/x-click-butcc-subscribe.gif"
            border="0" name="submit" alt="PayPal - The safer, easier way to pay online."
            onclick="_gaq.push(['_trackEvent', 'Click', 'PayPalMonthSub', 'SubscribePage']);" />
    <img alt="" border="0" src="https://www.paypal.com/en_GB/i/scr/pixel.gif" width="1"
            height="1" />
    <input type="hidden" name="cmd" value="_xclick-subscriptions" />
    <input type="hidden" name="business" value="paypal@yourdomain.com" />
    <input type="hidden" name="item_name" value=" Monthly Subscription" />
    <input type="hidden" name="item_number" value="1" />
    <input type="hidden" name="no_shipping" value="1" />
    <input type="hidden" name="no_note" value="1" />
    <input type="hidden" name="currency_code" value="GBP" />
    <input type="hidden" name="lc" value="GB" />
    <input type="hidden" name="bn" value="PP-SubscriptionsBF" />
    <input type="hidden" name="a3" value="4.99" />
    <input type="hidden" name="p3" value="1" />
    <input type="hidden" name="t3" value="M" />
    <input type="hidden" name="src" value="1" />
    <input type="hidden" name="sra" value="1" />
    <input type="hidden" name="return" value="http://yourdomain.com/subscribe/thanks.aspx" />
    <input type="hidden" name="rm" value="2" />
    <input type="hidden" name="cancel_return" value="http://yourdomain.com/subscribe" />
    <input type="hidden" name="notify_url" value="/http://yourdomain.com/IPN.aspx" />
</form>


如果您需要在您的帐户上设置默认通知url,那么您只能通过在不需要它的按钮中包含不同的处理程序来停止处理程序被ping。如果PayPal没有从处理程序处获得HTTP200,尽管它会继续尝试,因此我不建议将任何内容设置为不存在的URI。

创建发票id是你的应用程序的工作,还是PayPal创建的?有没有可能创建您自己的ID并让paypal使用该特定ID通知您?您的应用程序应该创建该ID并将其传递给paypal。另外,请确保它是唯一的,因为paypal将检查您应用程序的特定发票id是否已支付。感谢您提供的信息,该id是否存在长度、字符等限制。。等我想知道我是否可以在那里传递HMAC哈希,这样我就不需要存储这些临时ID。invoice pass-through变量可用于标识此购买的发票号。如果省略,则不会传回任何变量。长度:127个字符()您可以更好地管理它,这样您就可以向您的网站用户显示购买历史记录。