Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 贝宝RESTAPI返回页面_Php_Mysql_Api_Rest_Paypal - Fatal编程技术网

Php 贝宝RESTAPI返回页面

Php 贝宝RESTAPI返回页面,php,mysql,api,rest,paypal,Php,Mysql,Api,Rest,Paypal,我目前正在使用Paypal REST API为具有多个计划的用户处理计费协议 当用户注册一个计划时,它会将他们带到PayPal进行支付。在他们完成这一步后,PayPal将他们重定向到我提供的返回URL 问题是,当用户从PayPal返回时,有时用户的会话不会持续 我所有文件的第一行都是session\u start(),因此正在创建会话。在将用户带到PayPal之前,我已经验证了正在填充$\u会话数组-这是在PayPal之后将它们带回来的时候 有没有更好的方法来保存这样的数据,以便我可以在从Pay

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

当用户注册一个计划时,它会将他们带到PayPal进行支付。在他们完成这一步后,PayPal将他们重定向到我提供的返回URL

问题是,当用户从PayPal返回时,有时用户的会话不会持续

我所有文件的第一行都是
session\u start()
,因此正在创建会话。在将用户带到PayPal之前,我已经验证了正在填充
$\u会话
数组-这是在PayPal之后将它们带回来的时候


有没有更好的方法来保存这样的数据,以便我可以在从PayPal返回时更新用户帐户?或者,也许有一种方法可以将电子邮件与PayPal请求一起传递,以便在返回时将其返回到他们发送回我的网站的对象中?

如果您在注册页面和PayPal重定向回的页面上通过正确启动会话,您的会话应该正确启动

假设您不是无意中发现的,或者,听起来好像没有实际的“会话管理”问题,但这可能与PayPal重定向回的URL有关

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

例如,如果我在
example.com
访问您的域,我的会话将仅在
example.com
上激活。如果我随后进入
www.example.com
,我将收到一个新的会话

您可以通过访问您的网站
example.com
www.example.com
并检查
PHPSESSID
cookie设置为哪个域来验证这一点。如果它不是
.example.com
(注意前面的
),那么这就是问题=]

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


我在最近的一个问题上给出的答案在这里也应该适用:

我解决这个问题的方法是设置
覆盖账单协议上的商户偏好
,使用
return\u url
包含查询中的用户id,如
www.domain.com/api/handler.php?uid=42&action=return


当然,你可以通过
$传递你想要的任何标识符。

你应该将用户id添加到发送到paypal然后返回给你的输入中,但是没有发送到paypal的输入。我有一个按钮,上面写着“用paypal支付”,他们点击它,我启动了一个“用paypal创建账单协议”的方法,这里有详细说明:有或如何创建计划?@Dagon-他们点击paypal后的第一步,让他们进入审批屏幕,在那里他们审批付款和支付。这不需要我的投入。一旦用户接受了协议并支付了费用,它就会重定向回我的网站,并带有订户ID和其他数据。但当用户被重定向回我的网站时,我与他们离开Paypal返回之前的身份没有任何联系。
session.cookie_domain = ".example.com"