微信开发笔记-步骤

构建一套SDK

微信开发本质就是调用微信API。微信API是持续更新的,有时候新增,有时候修改,所以开发者免不了也要更新自己的代码。为了集中处理对微信API的请求,开发一套SDK是比较好的选择。

SDK,就意味着与外部应用代码没有耦合关系,自成一个依赖岛。封装SDK的好处显而易见:

1、集中处理请求的方式。

2、集中处理返回值和错误码。

3、复用请求凭证


回调服务器

开发者不仅要请求微信APPI,还要接受来自微信的反馈信息推送。有以下特点:

1、统一为XML格式字符串。微信服务器推送来的消息和开发者返回给微信服务器的消息都是XML格式。如果不需要返回信息,请务必返回空字符串。否则会报“返回值不合法”的错误。

2、微信推送来的信息包含多种类型。包括:用户消息、事件消息等。可以根据业务需要选择性处理;

3、压力较大。微信推送的消息类型较多,其中用户消息和地理位置上报算比较频繁的,所以响应的服务器要具备较好的负载能力。


access_token的封装

绝大多数微信API都需要使用access_token,所以access_token的维护是非常重要的。

1、统一来源。access_token具有排他性,如果已经有了一个access_token了还要请求申请access_token的接口的话,则原来的access_token就失效了。这在多系统都需要access_token的情况下非常严重。所以要统一access_token来源,建议所以子系统都访问同一个接口来获得access_token。

2、做好缓存。access_token有有效期,且申请access_token的接口有访问次数限制,所以缓存是必须的。然而官方给出的缓存过期时间是有问题的,建议本地缓存的有效时间在官方有效时间的基础上减少200秒。

3、正式号与测试号。每个正式公众号都配备了一个测试号,也只有一个测试号。实际开发中可能多个部门在使用测试号,这可能导致access_token互相覆盖的问题。建议对测试号的access_token也做统一封装。


网页授权

1、开发获得code的辅助工具。网页授权的流程比较复杂,且需要https的域名,所以为测试号搭建环境很不划算,不推荐为测试号搭建网页授权的环境。但是实际使用中可能需要真实的code来做测试,那么就需要一个高效的方法获得没有使用的有效code。建议开发一个辅助页面,显示网页授权连接的二维码,这样就可以比较方便的获得有效code。

2、代理域名。实际开发中可能有多个域名需要使用网页授权功能,但是微信后台只支持配置一个安全域名,这怎么办?你实际上需要的只是那个code而已,建议在配置的安全域名上开发一个中转程序,根据参数将code分发到指定URL上即可。

3、短URL处理。授权链接都很长,而且里面包含了APPID。既不方便使用,也不该直接使用。建议开发一个中转程序,根据参数构建真实的URL。这样的好处很多:

        (1)、统一管控。方便记录日志,进行统计。

        (2)、链接较短。相比原始URL,新的URL要精简很多。


用户地理位置更新

用户信息里的所在地信息是有问题。有两个原因:

1、早期微信的地理位置不规范,是可以手动输入的。现在仍然遗留了很多脏数据。

2、用户所在位置是可以用户自己选择的。有些用户处于各种心理而故意选择了一个不真实的。

然而很多时候我们需要用户的真实地理信息,这时候上报地理信息的接口就有用处了。我是这么用的:

1、用户经纬度请求腾讯地图APIhttp://lbs.qq.com/webservice_v1/guide-gcoder.html,获得所在地信息后更新用户数据。

2、每个经纬度都是返回值都进行缓存,可以一定程度上减少请求腾讯地图API的次数。

3、用户每天只更新一次地理信息。一方面是因为没必要太频繁更新,另一方面用户地理信息是每5秒上报一次,如果每次都更新对服务器的压力太大。

你可能感兴趣的:(微信开发笔记-步骤)