标签: 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,这样它就会在第一个&符号击中后不会被截断。
谢谢,
克里斯
答案 0 :(得分:0)
将传递的网址用urlencode换住,将&符号转换为PayPal可解析字符,然后在调用网址时使用urldecode对其进行解码。
urlencode
urldecode
这是因为PayPal的URL只是将?之后的所有内容拆分为&符号。它不知道什么时候是你的网站的一部分。因此,它会将PayPal classid=122作为自己的键/值对发送,而不是作为您网址的一部分。以这种方式对URL进行编码应该可以使其正常工作。
?
&
classid=122
编辑引用了错误的PHP函数。 urlencode / decode用于GET参数传递,htmlspecialchars用于存储 HTML数据