细数微信公众号小程序开发中遇到的坑

微信支付

开发前要准备好架构 , 如果需要使用到微信支付 , 要先确定使用 APP 去申请商户号还是用小程序去申请 .

今年踩了一个坑就是小程序项目已经上线了 , 需要在 APP 中获取微信的用户信息 , 使用微信登陆 , 没想到 APP 这边不能绑定已申请的商户号 ,
只能重新申请一个商户号来对应 , 这样一来小程序的支付信息也要跟着变动 . 所以 APP 微信绑定之后无法使用 openid 进行付款和结算 .

CURL 58 错误

微信支付还有一个大坑 , 就是 curl 的协议 , 微信使用的是 openssl 协议 , 而 centOs 默认的 curl 协议是
NSS . 碰到这个错误 , 一个就是签名出错了 , 仔细核对 , 或者用微信的签名工具测试 . 如果没有问题 , 基本上可以确定是 curl 协议的问题了 , 重新编译 curl 解决 .

公众号 access_token

公众号的 access_token 有两种类型 , 一个是获取用户信息需要用到的 , 用 appid 换取 code ,
然后用 code + appid + appsecret 换取 access_token 和 openid 等信息 . 这个获取个人信息的 access_token 每分钟有数万次的获取次数 , 目前没有超出的可能 .

另一个 access_token 是全局变量 , 一个公众同一时间只有一个 . 刷新了之后 , 其他地方的 access_token 就会失效 ,
这个 access_token 有失效时间 , 目前是 7200 s , 即两小时 , 并且有获取次数限制 , 不能实时获取 , 必须做缓存 .