【问题标题】:Notify URL of PayPalPayPal 的通知 URL
【发布时间】:2011-02-21 09:34:15
【问题描述】:

PayPal 成功返回了我在创建“立即购买”按钮时指定的返回 URL。但现在我很困惑。 如何检索有关在 PayPal 上发生的交易的详细信息?我还想在返回 URL 上设置一些数据库值。但我担心如果我的用户在不付费的情况下导航到该 URL,他仍然会成为高级会员。我该如何避免这种情况?

【问题讨论】:

    标签: paypal payment-gateway


    【解决方案1】:

    PayPal 通过他们所谓的 IPN 将数据返回到您的网站。它实际上只是对您指定的 URL 的回调。 您可以通过变量 notify_url 设置此 URL,您可以发送到 PayPal。

    例子:

    <input name="notify_url" value="http://yourdomain.com/notify_url.php" type="hidden">
    

    上例中的 notify_url.php 在付款完成时会从 PayPal 接收一些 POST 变量,即使客户从未返回您的网站也是如此。

    PayPal 返回的一些重要的variables 是:

    • mc_gross
    • 发票
    • 结算金额
    • protection_eligibility
    • 地址状态
    • payer_id
    • address_street
    • 付款日期
    • payment_status
    • 字符集
    • address_zip
    • mc_shipping
    • mc_handling
    • 名字
    • mc_fee
    • address_country_code
    • exchange_rate
    • 地址名称
    • notify_version
    • 结算货币
    • 自定义
    • payer_status
    • 商业
    • address_country
    • address_city
    • verify_sign
    • payer_email
    • txn_id
    • payment_type

    如果您设置了发票,则返回发票。它可以用作您自己的 order-id/transaction-id。

    txn_id 由 PayPal 生成,是他们自己的交易 id。

    如果您自己添加商品,PayPal 还会返回 num_cart_items、item_name1 (item_name2, item_name3)、quantity1 (quantity2, quantity3) 等。

    更多阅读请访问https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_Appx_websitestandard_htmlvariables

    当然,你还有问题要解决,如何检查所有这些数据并将其连接到你自己的数据库中的客户,你可能有。

    我所做的是在将客户发送到 PayPal 之前保存一个临时的“订单”,其中包含发票 ID,与我发送到 PayPal 作为发票的 ID 相同。这样我的 notify_url.php 页面可以检查我的数据库中的发票 ID 并比较订​​单/付款。

    【讨论】:

    • 嗨杰米特林。感谢您的宝贵回复。我已经自己想通了。我想补充一点,而不是将临时订单存储在数据库中,Paypal 已经给出了一次很好的示例,我们检索所有请求参数名称及其值并将其从我们的通知 url 发送回 Paypal(用于验证),然后 Paypal 返回一个字符串“VERIFIED”或“INVALID”,您可以根据它进行一些数据库操作。
    • 嗯,临时数据库主要用于我们需要以某种方式将其连接到我们自己的用户数据库中的用户。我确实需要这个。但这取决于我猜你正在构建什么服务:)
    • 我也遇到过类似的问题。 PayPal 没有很好地记录 IPN 的工作原理以及您可以返回处理哪些信息。最好的方法是在将用户发送到 PayPal 之前创建订单并将 UID 附加到“Item_Number”。这样我们就可以在最后使用一些东西来更新订单状态。很好的问题和来自@jamietelin 的精彩回应谢谢大家
    • 请不要链接到 Paypal 文档,它们通常是 404,我在他们自己的网站上找到了几个“已移动”并重定向到主页的链接。
    • @jamietelin 我完全同意,这是 Paypal 的问题——这就是我的意思,我并不是在批评你,实际上只是赞成你的回答。我专门在寻找item_number,但无法从 Paypal 找到太多信息。对于如此大的公司,您可能已经注意到,IMO 他们不擅长维护他们的网站,因为他们改变了他们目前的“移动”设计。至于item_number,我发现如果你只有一个项目,item_number 不像 item_number1、item_number2 那样编号......它只是item_number
    猜你喜欢
    • 2016-11-01
    • 2015-07-12
    • 2014-08-18
    • 2014-06-07
    • 2014-09-15
    • 2011-07-09
    • 2014-03-30
    • 2013-08-20
    相关资源
    最近更新 更多