今天在ThinkPHP集成支付宝的时候,老出现一个错误:错误代码 ILLEGAL_SIGN 。
经查发现生成的支付URL后面多了一个参数:&__hash__=fd859fc9a96d36e0c4a75b036bbda88f_688da907d6c415fd12a1f4324a2110f3
该参数是ThinkPHP的令牌验证开启后自动加入的。
在Action中可以使用C ( 'TOKEN_ON', false );来开启或者关闭令牌验证。
值得注意的是,如果没有关闭令牌验证而集成支付接口的话,那么支付接口生成的跳转URL后面就会多出这个参数,而支付宝接口是没有这个参数的,所以会出现以上错误。