贝宝 REST API Return 页面
Paypal REST API Return Page
我目前正在使用 Paypal REST API 为拥有多个计划的用户处理账单协议。
当用户注册一个计划时,他们会转到 PayPal 进行支付。他们完成该步骤后,PayPal 将他们重定向到我提供的 return URL。
问题是,有时当用户从 PayPal return 时,他们的会话不会持续存在!
我的所有文件的第一行都是 session_start()
,因此正在创建会话 。在将用户带到 PayPal 之前,我已经验证 $_SESSION
数组 正在填充 - 就在他们在 PayPal 之后被带回时。
是否有更好的方法来保存这样的数据,以便我可以从 PayPal 更新 return 上的用户帐户?或者也许有一种方法可以通过 PayPalrequest 传递电子邮件,以便在 return 发送回我的网站 return?
的对象中编辑它
如果您在注册页面和 PayPal 重定向回的页面上通过 session_start()
正确启动会话,您的会话应该会正确启动。
假设您不是无意中 closing the session, or regenerating the ID,这听起来似乎没有实际的 "session management" 问题,但也许这与 PayPal 的 URL 有关重定向回。
PHP 会话的一个常见问题是,在默认 PHP 配置下,它们不会在子域之间传输。
例如,如果我在 example.com
访问您的域,我的会话将仅在 example.com
有效。如果我然后去 www.example.com
,我将收到一个 new 会话。
您可以通过访问 example.com
或 www.example.com
的站点并检查 PHPSESSID
cookie 设置的域来验证这一点。如果是不是.example.com
(注意前导.
),那么就是这个问题=]
为了帮助解决这个问题,您可以修改服务器的配置以将 .example.com
设置为 cookie 的域。摘自 this answer:
session.cookie_domain = ".example.com"
我对最近的一个问题给出的相同答案在这里也适用:
The solution I used for this same problem was to set
override_merchant_preferences
on the billing agreement, with the
return_url
containing the user id in the query, like
www.domain.com/api/handler.php?uid=42&action=return
.
尽管您当然可以通过 $_GET
那样传递任何您想要的标识符。
我目前正在使用 Paypal REST API 为拥有多个计划的用户处理账单协议。
当用户注册一个计划时,他们会转到 PayPal 进行支付。他们完成该步骤后,PayPal 将他们重定向到我提供的 return URL。
问题是,有时当用户从 PayPal return 时,他们的会话不会持续存在!
我的所有文件的第一行都是 session_start()
,因此正在创建会话 。在将用户带到 PayPal 之前,我已经验证 $_SESSION
数组 正在填充 - 就在他们在 PayPal 之后被带回时。
是否有更好的方法来保存这样的数据,以便我可以从 PayPal 更新 return 上的用户帐户?或者也许有一种方法可以通过 PayPalrequest 传递电子邮件,以便在 return 发送回我的网站 return?
的对象中编辑它如果您在注册页面和 PayPal 重定向回的页面上通过 session_start()
正确启动会话,您的会话应该会正确启动。
假设您不是无意中 closing the session, or regenerating the ID,这听起来似乎没有实际的 "session management" 问题,但也许这与 PayPal 的 URL 有关重定向回。
PHP 会话的一个常见问题是,在默认 PHP 配置下,它们不会在子域之间传输。
例如,如果我在 example.com
访问您的域,我的会话将仅在 example.com
有效。如果我然后去 www.example.com
,我将收到一个 new 会话。
您可以通过访问 example.com
或 www.example.com
的站点并检查 PHPSESSID
cookie 设置的域来验证这一点。如果是不是.example.com
(注意前导.
),那么就是这个问题=]
为了帮助解决这个问题,您可以修改服务器的配置以将 .example.com
设置为 cookie 的域。摘自 this answer:
session.cookie_domain = ".example.com"
我对最近的一个问题给出的相同答案在这里也适用:
The solution I used for this same problem was to set
override_merchant_preferences
on the billing agreement, with thereturn_url
containing the user id in the query, likewww.domain.com/api/handler.php?uid=42&action=return
.
尽管您当然可以通过 $_GET
那样传递任何您想要的标识符。