shikeying
2024-01-11 3b67e947e36133e2a40eb2737b15ea375e157ea0
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package com.walker.wxtools;
 
/**
 * 微信公众号引擎定义。
 * @author 时克英
 * @date 2023-02-27
 */
public interface OfficialAccountEngine {
 
    /**
     * 公众号关注后,可通过该方法获取用户基本信息。
     * @param openId 指定获取的用户标识
//     * @param basicAccessToken 基本'access_token'
     * @return
     * @date 2023-04-20
     */
    public WxUserInfo getUserInfoSub(String openId) throws AccessTokenNotFoundException;
 
    /**
     * 获得微信用户基本信息。
     * <pre>
     * 1) 拉取用户信息(需 scope 为 snsapi_userinfo)
     * 如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和 openid 拉取用户信息
     * </pre>
     * @param openId
     * @return
     */
    WxUserInfo getUserInfo(String openId);
 
    /**
     * 通过 code 换取网页授权access_token。
     * <pre>
     * 1) 首先请注意,这里通过 code 换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同。
     * 2) 公众号可通过下述接口来获取网页授权access_token。
     * 3) 如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。
     * </pre>
     * @param code
     * @return
     */
    String getAuthAccessToken(String code);
 
    /**
     * 获得jsapi_ticket: 是公众号用于调用微信JS接口的临时票据.<p></p>
     * access_token 参数由引擎自动获取。
     * <pre>
     * {
     * "errcode":0,
     * "errmsg":"ok",
     * "ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA",
     * "expires_in":7200
     * }
     * </pre>
     * @return
     */
    String getJsApiTicket();
 
    /**
     * 同方法: {@linkplain OfficialAccountEngine#getJsApiTicket()}。
     * @param basicAccessToken 从外部提供参数: access_token
     * @return
     */
    String getJsApiTicket(String basicAccessToken);
 
    /**
     * 提供卡卷类型的 jsapi_ticket
     * @param basicAccessToken 从外部提供参数: access_token
     * @return
     */
    String getJsApiTicket4Card(String basicAccessToken);
 
    /**
     * 获得公众号基础的 access_token。
     * <pre>
     *     access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。
     *     开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。
     *     access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。
     * </pre>
     * @return
     */
    String getBasicAccessToken();
 
    void setAppId(String appId);
 
    void setSecret(String secret);
 
    /**
     * 返回appId,用于标识该引擎对应哪个公众号,为业务多个配置做区分。
     * @return
     * @date 2023-04-20
     */
    String getAppId();
}