PayPal正在截断我的返回查询字符串

时间:2015-06-02 05:25:15

标签: php paypal

当连接到PayPal时,我使用这样的URL(我在这里使用假值,但结构是真实的):

https://www.paypal.com/cgi-bin/webscr?&business=ZDS346347&cmd=_xclick&amount=100&item_name=Test&no_note=1&no_shipping=1&rm=2&return=http://www.website.com/registration.php?paypal=1&classid=122&sessionid=264&studentid=2286

问题是当我发送这个url时,它会截断我的返回值查询字符串:

paypal=1&classid=122&sessionid=264&studentid=2286

到此:

paypal=1

返回值中的&符号令人困惑,但我需要使用它们,以便我可以在返回时处理这些查询字符串值。

有没有,我可以把整个返回字符串传递给PayPal,这样它就会在第一个&符号击中后不会被截断。

谢谢,

克里斯

1 个答案:

答案 0 :(得分:0)

将传递的网址用urlencode换住,将&符号转换为PayPal可解析字符,然后在调用网址时使用urldecode对其进行解码。

这是因为PayPal的URL只是将?之后的所有内容拆分为&符号。它不知道什么时候是你的网站的一部分。因此,它会将PayPal classid=122作为自己的键/值对发送,而不是作为您网址的一部分。以这种方式对URL进行编码应该可以使其正常工作。

编辑引用了错误的PHP函数。 urlencode / decode用于GET参数传递,htmlspecialchars用于存储 HTML数据