微信支付那些事

引子

客户需求, 要做微信支付, 之前没有接触过支付接口, 想着不就是调用 API 嘛, 能有多难, 没想到还真的有很多坑, 算是在这里总结吐槽一下吧.

这里暂时不提前辈们讨论过的一些坑, 单纯的只说说我自己遇到的乡村野坑

支付目录

一些带有灵活路由的框架例如 thinkPHP, 在做微信支付的时候, 设置支付授权目录的时候一定要写完整的路由 uri, 不能落下入口文件(通常是 index.php)
我在配置的时候没有写 index.php, 因为我的服务器配置了 Apache 的 rewrite, 可是没想到微信这里还是要求很严格的需要完整的 uri

学到的东西

从这些坑爬出来之后, 不禁反思, 能从中学到什么知识呢

  • jQuery 的 ajax 返回值默认是 string 类型, 除非指定 dataType 为 json, 才会被 js 解析为 json 对象. 这一点我在一开始没有注意, 被恶狠狠的坑了一把.

  • 微信内置浏览器不会自动更新文件缓存, 这意味着如果你修改了 css 或者 js 文件, 需要清理微信缓存才能生效(debugx5.qq.com), 如果是生产环境则需要在引用的时候加上时间戳以强制微信浏览器重新加载此文件