昨天接微信支付的时候犯了一个最基本的错误,特此今天记录 以反省自己

当时我是在浏览器输出xml字符串来调试  却发现输出来的只是一串数字  于是反复检查代码

php 微信支付返回 xml格式错误

后来想起php输出“<>”尖括号等字符 在浏览器显示不了  于是加了一个函数htmlspecialchars   浏览器显示字符

并且 字符串能解析  数据也是对的   但是还是报xml解析错误

当时很困惑 于是百度  有人说是postcurl的时候 如果里面有中文字符串  发送到微信服务器会出现乱码  接着 在请求头设置字符集

还是没效果

突然想着  有可能只是浏览器不能显示字符  可是服务器上会显示  于是在服务器上打log 显示xml字符串

php 微信支付返回 xml格式错误

难怪会返回xml格式错误  经过一番检查 就是因为我加的htmlspecialchars   这个函数

去掉 就返回成功了

总结:看数据还是在服务器上看,浏览器有时候会不能显示特殊字符串 导致迷惑自己 浪费时间

相关文章: