前段时间部门要做一个活动,在微信实现。具体涉及到一下几个功能点:获取用户基本信息,判断用户是否关注我们公众号,自定义分享链接(包括朋友圈和好友),图片上传。
先说配置微信API,怎么在公众号后台配置,微信的文档已经很全面了:http://mp.weixin.qq.com/wiki/17/2d4265491f12608cd170a95559800f2d.html,需要说明的就是,url是完整的域名,不要带后面的参数。因为分享和上传都是jssdk的内容,所以还需要在公众号后台配置,参考:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html 。接下来,搞自己的客户端。之前别人推荐了lanewechat这个框架,自家服务器是php5.2(我摔),然后自己把这玩意修改了一番。
配置客户端:正如文档所述,获取access_token,等其他凭据,都需要WECHAT_APPID,WECHAT_APPSECRET,ENCODING_AES_KEY,WECHAT_TOKEN。配置填写完后,微信要做一次服务器验证,文档已经有说明,需要注意的是,我们需要把字符串输出到页面,微信才能抓到,我是php,直接echo $echoStr;了。接下来获取用户基本信息,在测试环境试过没有问题,发到生产环境。然后。。。挂了。这个问题折腾了一天多,实在想不出什么原因的时候,听人说生产环境的curl不支持ssl(此处省略一万字)。然后解决了这个问题,代码跑了起来。
自定义分享链接: 与文档没有太大出入,需要注意的是,转发的时候微信在url后面加了参数。如果把分享链接写死的话,第二次转发就会报错了,所以,$nowUrl = ‘http://‘ . $_SERVER[‘HTTP_HOST‘] . $_SERVER["REQUEST_URI"];
图片上传:因为是选美活动,上传图片是必须的。但是android版本的微信里面不支持多图上传。调用微信自己的api即可解决。
总结,微信sdk的坑还是不少的, 有几点需要注意,1>文件上传问题, 2>分享时url问题 3> access_token和 jsapi_ticket需要缓存,微信每天限制2次请求,每次有效期7200s,如果你今天用完了,就都挂了!