公司的微信分享功能用了几个月了,一直没有出现问题,唯一的问题就是由以前的一台服务器到现在的多台分布式服务器的变化,我存储在本地缓存的那些东西自然就不能使用了,于是就使用了memcache来管理缓存,
使用的缓存类 : http://blog.he29.com/?p=426
然而Token获取方式,以前是直接让用户去主动触发,但是随着用户量的变大,并发情况越来越严重。于是, 我们改成了liunx的定时任务方式,写了小程序每个小时去获取一次token,然而程序写完以后,却发现access_token没问题,但是微信分享一直有问题,(之前是好的)~具体情况如下:
与微信官方的签名校验出来是一致的,就说明至少签名的算法是没错的,但是就是一直提示签名不对:
然而就在迷茫了一整天之后,今天早上,我已经准备把获取getticket恢复成以前的方法,突然想到一个问题,
神奇的把之前的获取getticket的链接打印出来看了一眼~~~
……..
这是之前的:
1 |
$url = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token='.$access_token.'&type=jsapi'; |
这是现在的:
1 |
$url = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token='.$access_token.'&type=wx_card'; |
说好的要做彼此的天使呢~
终于找到问题了.就是这里 type的差异,
想起来写这个的时候,直接进入开发文档复制出来了获取ticket的那个地址,实际是错误的~~
但是:
这个计算出来的 getticket 与使用微信官方的签名效验工具出来的签名是一致的, 后来看了下,这个是卡券用的~~
坑是爬出来了,做个记录,免得下次又掉进去~~….