2012-12-21 62 views
1

我有网站与贝宝付款。我使用IPN处理支付贝宝返回链接

我想游客支付宝付款

我把篮子形式后返回特定的页面

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

对PARAM =值可以是具体在某些情况下

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

我知道可以在PayPal商家帐户 - >配置文件 - >销售首选项 - >网站付款首选项 - >自动返回网站付款设置自动返回

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

回答

1

当您像使用Payments Standard一样使用付费标准时,即使启用了自动返回功能,用户也绝不会保证返回到您的退货状态。例如,他们可以在自动返回之前关闭浏览器。这根本不是很可靠。

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

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

我还建议将数据保存到数据库或使用会话变量来反对URL参数,因为Express Checkout会在您自己的服务器上而不是PayPal上进行,所以这些参数很容易访问。

0

通过将Website Payment Preferences上的Auto Return for Website Payments设置为ON并不意味着您的应用程序将始终使用其上的返回URL。您仍然可以通过指定像return领域覆盖它是你在上面所做的:

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

的区别仅仅是游客将直接重定向到返回URL(通常等待约10秒),不带他们进入“感谢您的订单”页面。

0

最有趣的事情,我有回报问题只在沙盒提交。在真实PayPal账户中,即使关闭了自动返回选项,我也有访客在感谢页面上返回。