【问题标题】:Paypal NVP with IPN for confirmation - what ties them togetherPaypal NVP 与 IPN 进行确认 - 是什么将它们联系在一起
【发布时间】:2012-01-23 13:19:28
【问题描述】:

我正在使用带有 NVP API(使用 PHP)的 PayPal 进行快速结帐。在将用户重定向到 Paypal 之前,我正在数据库中创建发票记录。如果用户在处理后没有返回我的网站,我正在使用 IPN 确认购买,然后更新确认付款的发票记录。我仍处于沙盒模式,并试图弄清楚如何将 NVP 开始的交易与 IPN 得到的确认联系起来。

我需要验证在 NVP 中发送的“PAYMENTREQUEST_n_INVNUM”是否会在 IPN 帖子中作为“发票”返回。

似乎在我上线之前我无法实际测试这个,因为沙盒 IPN 似乎在 NVP 发起的沙盒交易中不活跃 - 这是正确的吗?

感谢您的帮助。

【问题讨论】:

  • 您可以使用自定义字段作为传递变量。分配一个 ID,并使用它来链接交易。
  • 是的,自定义字段是我存储发票编号的第二选择。我希望“发票”专用于此目的,如果需要,我可以将自定义用于其他一些数据。

标签: paypal paypal-ipn confirmation nvp


【解决方案1】:

可以在 Sandbox 中对此进行测试。但如果您使用“PayPal NVP”,我假设您使用的是 PayPal Express Checkout 并调用 SetExpressCheckoutDoExpressCheckoutPayment API。
如果是这种情况,你就不需要 IPN,因为只有在你调用DoExpressCheckoutPayment 时才会完成交易。

换句话说,买家将总是被重定向到您在SetExpressCheckout 中指定的 RETURNURL,当您在此退货页面上调用 DoExpressCheckoutPayment 时,交易已完成(或未完成)。

要获取发票编号,您可以致电GetExpressCheckoutDetails 并提供您之前检索到的 TOKEN(它也附加到 RETURNURL 的 GET 中)。

最后,检查DoExpressCheckoutPayment API 响应中的PAYMENTSTATUS=Completed 以查看事务是否已完成。

【讨论】:

  • 你是对的,我正在使用 PayPal Express Checkout 并调用 SetExpressCheckout 和 DoExpressCheckoutPayment API。我的印象是,一旦用户点击 Paypal 网站上的“立即付款”按钮,它就会被付款。如果用户因任何原因在重新路由之前断开与我的站点的连接,我将永远不会得到销售确认。将 IPN 作为确认的备份似乎更安全。
  • 不,只有在您调用 DoExpressCheckoutPayment 并且您在 API 响应中收到 PAYMENTSTATUS=Completed 后,才会完成交易。这就是为什么 Express Checkout 在 PayPal 网站上的结帐中没有显示“立即付款”按钮的原因。相反,它让用户授权付款,如果他们对此感到满意,他们可以单击“继续”按钮继续。 “继续”按钮会自动返回您的网站,没有延迟,没有麻烦,总是 100% 的时间。如果买家没有点击您的退货网址,则仅表示他们不想继续进行 PayPal 交易。
  • (不过,IPN 总是可以作为备份,我同意。PAYMENTREQUEST_0_INVNUM 将匹配 IPN POST 中的“发票”参数)。
  • useraction=commit实际上只是将按钮上的文字从“继续”更改为“立即付款”,它仍然不会自动完成付款。
  • 是的,我是。通过 useraction=commit,您可以跳过最终的订单审核页面(在 RETURNURL 上),它可以让您自动调用 DoExpressCheckoutPayment,但它不会自动为您完成交易。
【解决方案2】:

感谢 Robert 澄清了流程 - 特别是 useraction=commit。

我终于意识到我可以在沙盒中为我的测试卖家开启 IPN,并与 IPN 一起测试 NVP。我能够验证 PAYMENTREQUEST_0_INVNUM 与 IPN POST 中的“INVOICE”参数匹配。

我将使用自定义字段从我的系统传递客户电子邮件,以防他们使用不同的电子邮件登录贝宝,因此允许我有电子邮件/发票号码对进行确认。

【讨论】:

    猜你喜欢
    • 2015-05-06
    • 1970-01-01
    • 2023-03-14
    • 2014-09-18
    • 2015-12-01
    • 2011-12-18
    • 2011-12-02
    • 2021-03-09
    • 2012-01-23
    相关资源
    最近更新 更多