当连接到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数据