gpt4 book ai didi

PayPal 不在返回时发送交易信息

转载 作者:太空宇宙 更新时间:2023-11-03 15:57:28 25 4
gpt4 key购买 nike

我正在尝试实现 PayPal 支付,但无论到目前为止我找到了什么选项或答案,它仍然不会将交易信息发送回成功回调 url(tx、st、amt 和 cc)

我已经将自动返回设置为打开,将 PDT 设置为打开,尝试将 rm 设置为所有可能的值(0、1 和 2),但仍然没有成功

令人困惑的部分是 PayPal 的文档清楚地提到我应该在所有情况下都得到它们,除非我使用 rm 1 并且包含返回 url,但我就是不这样做

Return URL behavior. If set to “1” and if a “return” value is submitted, upon completion of the payment the buyer will be sent back to the return URL using a GET method, and no transaction variables will be submitted. If set to “2” and if a “return” value is submitted, the buyer will be sent back to the return URL using a POST method, to which all available transaction variables will also be posted. If omitted or set to “0”, GET methods will be used for all Subscriptions transactions and Buy Now, Donations, or PayPal Shopping Cart transactions in which IPN is not enabled. POST methods with variables will be used for the rest

它确实返回到成功页面,但不包括交易信息(顺便说一句,即使将 rm 设置为 2 并具有适当的返回 url,它仍然执行 GET 而不是 POST,这就是为什么我我怀疑文档已过时或沙箱环境有问题)

值得一提的是,这是我的相关表单字段

<input type="hidden" name="business" value="sb-h7plu24373@business.example.com" />
<input type="hidden" name="return" value="@(Url.Action("Success", "Paypal", null, "https", (string) ViewBag.host))">
<input type="hidden" name="cancel_return" value="@(Url.Action("Failed", "Paypal", null, "https", (string) ViewBag.host))">
<input type="hidden" name="rm" value="2" />

image from the sample controller i'm using to test

Image from that business dummy account with it's settings done properly

知道我错过了什么吗?我一直在考虑完全放弃 PDT 并依赖 IPN webhook,但我想我会先问一下

附言我已经用实际的主机名进行了测试,实时调试但仍然发生相同的情况,它返回到返回 url 但没有交易信息,我什至检查了浏览器网络选项卡以检查请求以确保它没有什么好笑的在我的网站上,它正在发送没有交易信息的请求

最佳答案

在沙盒环境中进行测试可能与您遇到的 PDT 问题有关;有可能它只能在 Live 中工作。但这种设计和使用 PDT 的一个更容易被忽视的问题是,实际上永远无法保证返回。根据买家的地点和情况(例如客人结账),PayPal 可能有义务向买家出示收据,在这种情况下,除非买家点击返回按钮,否则返回不会自动进行。或者,买家的浏览器可能会在交易完成后但在返回发生之前崩溃或网络连接中断。因此,在实践中,PDT 绝不可靠,只能用于提供信息(例如向客户显示感谢信息)。 没有您的业务逻辑(是的,没有)应该依赖 PDT 的实际工作。

相反,您可以像您提到的那样围绕 IPN 或 Webhook 构建您的设计,尽管这也可能是异步和延迟的。


最稳健的解决方案是服务器端设计,它通过对 PayPal 的 API 调用进行捕获,因此会根据该服务器端 API 调用的响应立即通知成功/失败。这是一个骨架演示:https://developer.paypal.com/demo/checkout/#/pattern/server

请注意,在 fetch( XHR 到服务器端点之前,不会发生任何 PayPal 交易,然后必须对 PayPal 执行自己的捕获 API 调用。

关于PayPal 不在返回时发送交易信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59003163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com