Paypal REST API返回页面

时间:2015-02-24 03:12:06

标签: php mysql api rest paypal

我目前正在使用Paypal REST API为具有多个计划的用户处理结算协议。

当用户注册计划时,需要PayPal付款。完成该步骤后,PayPal会将它们重定向到我提供的返回URL。

问题是,有时用户的会话在从PayPal返回时不会保留!

我有session_start()作为我所有文件的第一行,因此正在创建会话 。在将用户带到PayPal之前,我已经验证了$_SESSION数组 正在填充 - 只是在PayPal之后将它们带回来。

有没有更好的方法来保存这样的数据,以便我可以在从PayPal返回时更新用户帐户?或者也许有一种方法可以通过PayPalrequest传递电子邮件,以便在返回时发送回我的网站的对象中返回它?

2 个答案:

答案 0 :(得分:0)

如果您在注册页面和PayPal重定向的页面上通过session_start()正确启动了会话,那么您的会话应该正常启动。

假设您不是无意中closing the sessionregenerating the ID,听起来似乎没有实际的“会话管理”问题,但可能与PayPal的网址有关。重定向回。

PHP会话的一个常见问题是,使用默认的PHP配置,它们不会在子域之间传输。

例如,如果我在example.com访问您的域名域,则我的会话将仅在example.com上有效。如果我转到www.example.com,我会收到会话。

您可以通过example.comwww.example.com访问您的网站并检查PHPSESSID Cookie设置的域来验证这一点。如果不是 .example.com(请注意前导.),那么这就是问题=]

要帮助解决此问题,您可以修改服务器的配置,将.example.com设置为Cookie的域。取自this answer

session.cookie_domain = ".example.com"

答案 1 :(得分:0)

我给最近一个问题的答案也应该适用于此:

  

我用于同一问题的解决方案是设置   关于结算协议的override_merchant_preferences,与   return_url在查询中包含用户ID,例如   www.domain.com/api/handler.php?uid=42&action=return

当然,您可以通过$_GET那样传递您想要的任何标识符。