广州小程序开发

使用easywechat开发

作者:广州小程序开发 时间:2018-06-19 22:43
早就听说easywechat做的很NB ,近两年一直没搞微信也没机会用
easywechat已经出到4.0了,想来已经很完善了,没想到 一上手就遇到一个大坑
而且网上几乎都没什么问题资源,easywechat作者是laravel神教,想来tper用的人不多
当然很多坑是微信的坑
接入开放平台

第一个坑  微信回调接口默认返回success有问题
easywechat 官方推荐的 接收 component_verify_ticket 超简单 
但在TP里用的时候返回 header:{}
后来发现是由于我把默认返回格式 设为了json (方便前后交互)
改回了html后,
返回的是HTTP/1.0 200 OK Cache-Control: no-cache, private Date: Sun, 17 Jun 2018 12:06:08 GMT success
很明显把header头的东西输出到body里了

然后又使用了 think-wechat 包
这是easywechat 文档中推荐的 搭配TP使用的包
用上述方法的话 效果是一样的
参考think-wechat 的 readme ,使用了 $server->serve()->send()方法
输出success后会 继续尝试输出一个 boolean类型 当然类型不符导致报错 这样对微信端就会认为你返回格式不对
最后在这个send 之后,加了一个 die 立即结束脚本,算是临时解决了

第二个坑
虽然输出正常了 但该拿的东西没拿到 
component_verify_ticket为空
其实已经拿到了 但没存到缓存中 或者存了 但拿不到
easywechat默认使用的是symfony这个包里的cache来存储一些数据
但在tp下无效 不知道为啥 就是无效 ,存了 但没东西
在think-wechat中有个设置 从字面看就是是否使用TP的缓存
好我选择使用TP缓存

第三个坑来了
没吊用 还是不行  think-wechat配置文件键名多写了个S
坑了好久 没办法都提issue了 
https://github.com/overtrue/wechat/issues/1260
后来看源码 发现 think-wechat在取这个变量时 ,取的是 default 前缀
但 在他的配置文件中,只有一个 defaults 前缀的数组
TMD这问题就显而易见了
把defaults改成default  好了 

第四个坑
开放平台授权页 没法直接跳转
必须得放一个页面,上面放个按钮或者链接,再跳到生成的授权页上
好 但是微信文档也不说
一开始就想直接打开页面就跳过去授权
结果SB了
参考 
https://blog.csdn.net/qq_29904091/article/details/80569669

上一篇:一个营业执照,可以实现附近小程序多点定位吗
下一篇:不同用户生成的form_id可以给同一个openid发送模板

您的疑惑,我们来解答

多年来我们为上百家企业提供了网站建设服务

感受专业服务,从来电咨询开始
广州:18814374480深圳:13480275394
在线咨询