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


PayPal is Truncating My Return Query String

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

https://www.paypal.com/cgi-bin/webscr?&业务= ZDS346347& cmd = _xclick&金额= 100,item_name = Test& no_note = 1, no_shipping = 1, rm = 2,返回= 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,这样它就不会在第一个&之后被截断。

谢谢,克里斯

urlencode包装传递的URL以将&号转换为paypal可解析的字符,然后当您的URL被调用时使用urldecode来解码它们。

这是因为PayPal的URL简单地将?之后的所有内容分成&符号块。它不知道一个人是否属于你的网站。所以它发送PayPal classid=122作为它自己的键/值对,而不是作为你的URL的一部分。以这种方式编码URL应该可以使其正常工作。

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