可以通过官方示例成功配置。需要注意session_key、$encryptedData和$iv之间的严格对应关系。如果没有对应关系,将无法解密并返回错误代码:-41003。这个问题调整了两三天,才发现$encryptedData在调试时被写死了,这就是出现这个问题的原因。
引入微信加密数据解密后,返回的数据总是在0位置的json中报告为语法错误:意外令牌,无法解析为JSON对象。一般如果数据格式不对,令牌后会有错误的字符,但奇怪的是这一个没有。折腾了一下午,调试后发现服务器返回的数据前面有几个空格,正常情况下是看不到的,如上图:
这个空间在编辑器中是不可见的,也就是说,它改变了一切。打印的内容如下所示:
data : ' ' code ' :200, ' message ' : '用户登录成功! ', '数据' : '' '},通常是:
data:{ '代码' :200,'消息' : '用户登录成功!'、‘数据’:‘‘}‘}‘}解决方法:将微信官方提供的解密文件转换成“UTF-8无BOM编码”就可以神奇地解决这个问题。
调试结果转换后,可以正常解析JSON。