1

我有使用贝宝付款的网站。我使用 IPN 处理付款

我希望访问者在支付宝付款后返回特定页面

我放入篮子形式

<input type="hidden" name="return" value="http://site.com/basket/thank-you?param=value">

在某些情况下,对 param=value 可能是特定的

但是付款后访客只能看到贝宝“感谢您的订单”页面:(访客可以使用此页面上的返回链接,但他们不会这样做:)

我知道可以在 PayPal 商家账户中设置自动退货-->个人资料-->销售偏好-->网站支付偏好-->网站支付的自动退货

但是我应该只设置一个网址。所以我必须使用 cookie 或 session 来捕捉用户的语言。为什么会这样?为什么返回链接隐藏字段不起作用?是否有可能在没有 PDT 的情况下获得退货功能?

4

3 回答 3

1

像您一样使用 Payments Standard 时,即使启用了自动退货,也无法保证用户能够退回您的退货。例如,他们可以在自动返回发生之前简单地关闭浏览器。这根本不是很可靠。

如果您想确保用户回到您的应用流程,那么您可以使用Express Checkout。这涉及 3 个 API 调用,SetExpressCheckout GetExpressCheckoutDetailsDoExpressCheckoutPayment

登录、查看并同意付款后,用户将被发送回您在 SetExpressCheckout 中指定的 ReturnURL。此时,您可以调用 GetExpressCheckoutDetails 以获取付款人详细信息(可选),然后使用 DoExpressCheckoutPayment 完成所有操作。

我还建议将数据保存到您的数据库或使用会话变量而不是 URL 参数,因为 Express Checkout 发生在您自己的服务器而不是 PayPal 的服务器上,因此很容易访问。

于 2012-12-21T18:20:13.137 回答
0

Auto Return for Website Paymentson your设置Website Payment PreferencesON并不意味着您的应用程序将始终使用 Return URL。您仍然可以通过return像上面所做的那样指定字段来覆盖它:

<input type="hidden" name="return" value="http://site.com/basket/thank-you?param=value">

不同之处只是访问者将被直接重定向到返回 URL(通常等待大约 10 秒),而不会将他们带入“感谢您的订单”页面。

于 2012-12-21T14:44:00.997 回答
0

最有趣的是,我只在 Sandbox 中提交了退货问题。在真实的贝宝帐户上,即使关闭了自动返回选项,我也会在感谢页面上返回访问者。

于 2012-12-23T20:04:10.253 回答