PayPal 快速结账处理“待付款”与IPN

发布于 2025-01-06 14:54:15 字数 878 浏览 0 评论 0原文

我找不到任何关于此的明确文档。
如果您使用贝宝快速结帐,当付款待处理时,接下来会发生什么?
如果状态发生变化,PayPal 是否会通过 IPN 向您发送更新,您有选择吗?

假设您执行 DoExpressCheckoutPayment(使用 NVP) 你会得到这样的信息:

&PAYMENTSTATUS=Pending 
&PENDINGREASON= ECHECK //The payment is pending because it was made by an eCheck that has not yet cleared. 
&REASONCODE=None

那么你已经付款了,你想等到结清吗?接下来你应该做什么。

更新一些(外部文档)我发现仅建议您可以使用(IPN?)来处理待付款。

“如果 Do Express Checkout Payment PENDINGREASON 响应是一个值 除了“无”或“已完成”之外,付款处于待处理状态。通常, 这意味着客户已使用 aneCheck 付款。在这种情况下,资金 不得到保证,并且您不应运送或交付物品或 服务直至付款成功完成。注意:
PayPal 建议您阻止电子支票作为付款方式,如果您 无法处理待处理的状态付款。要查明某个状态 等待付款,您可以:

提交查询交易。

使用 PayPal 管理器检查状态。请参阅 PayPal 管理器在线帮助 了解详情。”

和 IPN 之间唯一的关联(如果以这种方式使用)似乎可以使用“自定义”字段跟踪待处理状态。 DoExpressCheckoutPayment (nvp) 中未给出 txn_id (ipn)。有人对此有任何经验吗?

I cant find anny clear documentations about this.
If you use paypal express checkout, when a payment is pending what happens next?
Does paypal sends you by IPN an update if the states changes, do you have options?

Let say you do an DoExpressCheckoutPayment (with NVP)
and you get this:

&PAYMENTSTATUS=Pending 
&PENDINGREASON= ECHECK //The payment is pending because it was made by an eCheck that has not yet cleared. 
&REASONCODE=None

So you've made the payment and you want to wait until its cleared? What should you do next.

Update Some (external documentation) I found only sugest you could use (IPN?) to handle pending payments.

"If the Do Express Checkout Payment PENDINGREASON response is a value
other than none or completed , the payment is pending. Typically,
this means the customer has paid with aneCheck. In such a case, funds
are not guaranteed, and you should not ship or deliver items or
services until the payment has successfully completed. NOTE:
PayPal recommends that you block eChecks as a payment method if you
are unable tohandle pending state payments.To find out the status of a
pending payment, you can:

Submit an Inquiry transaction.

Check the status using PayPal Manager. See PayPal Manager online help
for details."

The paypal sandbox seems to have the option to check IPN messages for the express checkout type. The only correlation (if its ment to be used this way) between the DoExpressCheckoutPayment and the IPN seems you can use the "custom" field to keep track of a pending status. The txn_id (ipn) isn't given in DoExpressCheckoutPayment (nvp). Does any one have any experience with this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

得不到的就毁灭 2025-01-13 14:54:15

即使 PAYMENTSTATUS=Pending,交易 ID 也肯定会在 DoExpressCheckoutPayment 中给出。待付款仍然是一笔交易。

所以,是的,当交易完成时,您将通过 IPN 收到通知。这通常需要几个工作日。
完成后,您可以将 DoExpressCheckoutPayment 的交易与您将通过 IPN 中的 txn_id 收到的 IPN 关联起来。

注意:如果您想在 PayPal 沙盒中测试“待处理”付款,只需转至 https://developer.paypal。 com/>测试帐户,然后点击您正在测试的卖家帐户的“付款审核”。
一旦在该卖家帐户上启用付款审核,它收到的任何交易都将处于“待处理”状态。
只需禁用付款审核即可随后释放交易。

The transaction ID is most certainly given in DoExpressCheckoutPayment, even if the PAYMENTSTATUS=Pending. A pending payment is still a transaction.

So yes, you would be notified via IPN when the transaction is completed. This typically takes a few working days.
Once it has completed, you can correlate the transaction from DoExpressCheckoutPayment to the IPN you will have received via the txn_id in the IPN.

Note: If you want to test a 'Pending' payment in the PayPal Sandbox, simply go to https://developer.paypal.com/ > Test account and click on 'Payment review' for the seller account you're testing with.
Once payment review is enabled on that seller account, any transactions it receives will be in a 'Pending' state.
Simply disable payment review to release the tranasctions afterwards.

Bonjour°[大白 2025-01-13 14:54:15

我想我应该在此添加我两便士的想法。

我通过 dotNet SDK 使用 Express Checkout 获得待处理退货状态,根据文档和示例,我应该获得“已批准”状态。

我不明白为什么,但结果是因为我正在使用一种新货币,在我们的例子中是“英镑”。我必须以协调员沙箱帐户身份登录,并决定如何处理新货币。转换它或设置新的货币余额。一旦我执行了此操作并将其设置为默认操作,待处理的返回状态就不再出现。

希望对某人有帮助!

I thought i'd add my two pence worth of thoughts to this.

I was getting a pending return status using Express Checkout via the dotNet SDK, according to the doc's and examples I should have been getting an 'approved' status.

I couldn't figure out why but it turned out to be because I was passing through a new currency, in our case 'GBP'. I had to log in as the facilitator sandbox account and decide what to do with the new currency.. convert it or setup a new balance in the currency. Once I did this, and set it as the default action, the pending return status no longer occurred.

hope that helps someone!

£噩梦荏苒 2025-01-13 14:54:15

这里没有指出的一件事是 Paypal Express API 不支持通过代码传入 NOTIFYURL,而且我还没有找到任何其他内容可以确认。因此,您必须使用 PayPal 帐户中设置的硬编码 IPN url。这当然会导致问题,因为您需要一个可以重定向到各个付款选项的通用回调文件。

例如,如果您使用的是 Paypal Express 和 Paypal Advanced。这些都不能正确支持使用代码传入的 notificationurl。 Paypal Advanced 声称可以,但似乎不起作用。因此需要有一个通用的 IPN 回调文件来处理每个 IPN 的重定向。

除非其他人可以确认可以在代码中传递的 Express Checkout 变量的工作通知 URL?

One thing not noted here and I haven't found anything else to confirm.. is that Paypal Express API doesn't support passing in the NOTIFYURL with the code. So you have to use the hardcoded IPN url set in your paypal account. This of course causes issues because you need a common callback file that can redirect to the individual payment options.

For example, if you are using Paypal Express AND Paypal Advanced.. Neither of those properly support a notifyurl passed in using the code. Paypal Advanced claims to, but it doesn't seem to work. So there needs to be a common IPN callback file that handles the redirection to each.

Unless someone else can confirm a working notify url for Express Checkout variable that can be passed in the code?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文