mpsdk4j的点滴记录--MPAccount

mpsdk4j是在实际的生产项目中抽离出来的开源分享项目,它的成长至今也算是有不少的经历吧, 最近一直忙于工作与生活上的事情疏忽了对它的关心. 自去年下决心对它重构并建立了QQ交流群( 486192816 )后, 逐渐的有不业界朋友前来关注, 在此非常感谢他们的支持. 都说用过方知其好, 可实际情况确不是这么乐观呀,在大家的使用过程中发现mpsdk4j有不少欠缺与不足的地方. 之前一直想在元旦发布的2.b.1版本也拖延至今还没有交工, 在此对大家说声抱歉, 以后定会嘉勉.下面还是先进入此次的主题–初识mpsdk4jMPAccount. (注: 对于有微信开发基础与项目经验的可略过)

mpsdk4j自发布之时起的目标就是要做到原生态,简单易用. 不过在实际的交流过程中发现一个普遍的现象, 就是对初次接触微信开发的朋友来说,mpsdk4j的使用还是有点难(这也是为何要写这一篇博文的原因之一). 那么接下来我们就先简单的认识下微信公众平台开的所需要的元素, 以及它们与mpsdk4j之的映射关系.

微信公众号属性

序号属性示例备注
1公众号原始IDgh_20e50b3b4r9u以gh_开头的(不明白其含义)
2公众号昵称mpsdk4j用户自定义的公众号别名
3用户唯一凭证(应用ID)wxa822bd879532187以字母wx开头的,其含义大概是微信的拼音首字母
4用户唯一凭证密钥(应用密钥)613d3ce897hgf71a875d1342c8325f3d32位的随机字符串
5AES 加解密密钥JwAsfZH4p9iuuvfxjry6cLtlOgZAd853kJQ5hNv5OI443位的随机字符串
6开发者服务令牌weixindev用户接入微信开发者服务时的自定义令牌
7公众号类型SD: 订阅号, S: 服务号, E: 企业号 (预留字段)
8是否认证truetrue: 通过认证, false: 未通过认证 (同上也是预留字段)

mpsdk4j中的代码映射关系

那么在mpsdk4j中我设计了一个对象, 位于io.github.elkan1788.mpsdk4j.vo包中其名字叫MPAccount, 直译过来是微信公众号的意思. 它将上面的8个公众号属性对应的代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

/**
 * 微信公众号信息
 * 
 * @author 凡梦星尘(elkan1788@gmail.com)
 * @since 2.0
 */
public class MPAccount {

    /**
     * 公众号原始ID
     */
    private String mpId;

    /**
     * 公众号昵称
     */
    private String nickName;

    /**
     * 应用Id
     */
    private String appId;

    /**
     * 应用密钥
     */
    private String appSecret;

    /**
     * 令牌
     */
    private String token;

    /**
     * AES安全加密密钥
     */
    private String AESKey;

    /**
     * 公众号类型
     * D:订阅号
     * E:企业号
     * S:服务号
     */
    private String mpType;

    /**
     * 是否认证
     */
    private boolean pass;
		
		......
}

有过微信开发经验的朋友, 都不难看出这些属性都是微信公众号必备的, 前面6个属性是可以微信公众号管理平台上直观的看到, 后面2个属性是从中经验中吸取提炼出来的, 在后面的许多开发中有使用的需求. 比如在调用微信的语音识别接口时就是得先了解当前公众号是否通过认证, 只有认证成功的公众号才有权限使用语音识别接口. 在实际的项目经验中, 你直接把此类设计成一个数据库表用来管理微信公众号信息.

或许你会觉得看完这些文章并没有太大的收获, 那不要紧, 你可以把它收藏起来, 当作是文档工具使用. 哪天你在开发的时候不记得了其中某个属性的含义, 可以倒回头来再拾起. 如有更好的建议或是意见, 可以在下面回复.

参考: