今天给一套Thinkphp开发的程序集成支付宝接口时发现了很奇怪的现象,通过用户浏览器的同步返回到网站时提示Sign验证失败,但是支付宝的服务器异步返回却是正确的。 于是看了下支付宝SDK中同步返回的Sign验证部分,步骤如下: 1.获取$_GET中key为不为sign、sign_type并且value不为空的项 2.将新生成的数组按照key的ascii值进行排序(使用ksort函数) 3.把数组所有元素,按照“key=value”的模式用“&”字符拼接成字符串 4.把这个字符串和支付宝的安全验证码(配置中的“key”这一项)拼接,并计算md5 5.将计算出的md5值与$_GET[‘sign’]比较,