chengkun
2025-06-05 4080b5997b38ca84b3b203c7101dcadb97b76925
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
/**
 * Alipay.com Inc.
 * Copyright (c) 2004-2020 All Rights Reserved.
 */
package com.alipay.easysdk.factory;
 
import com.alipay.easysdk.kernel.AlipayConstants;
import com.alipay.easysdk.kernel.Client;
import com.alipay.easysdk.kernel.Config;
import com.alipay.easysdk.kernel.Context;
import com.alipay.easysdk.kms.aliyun.AliyunKMSClient;
import com.alipay.easysdk.kms.aliyun.AliyunKMSSigner;
import com.aliyun.tea.TeaModel;
 
/**
 * @author junying
 * @version : MultipleFactory.java, v 0.1 2020年12月23日 2:14 下午 junying Exp $
 */
public class MultipleFactory {
 
    public final String SDK_VERSION = "alipay-easysdk-java-2.2.2";
 
    /**
     * 将一些初始化耗时较多的信息缓存在上下文中
     */
    public Context context;
 
    /**
     * 设置客户端参数,只需设置一次,即可反复使用各种场景下的API Client
     *
     * @param options 客户端参数对象
     */
    public void setOptions(Config options) {
        try {
            context = new Context(options, SDK_VERSION);
 
            if (AlipayConstants.AliyunKMS.equals(context.getConfig(AlipayConstants.SIGN_PROVIDER_CONFIG_KEY))) {
                context.setSigner(new AliyunKMSSigner(new AliyunKMSClient(TeaModel.buildMap(options))));
            }
 
        } catch (Exception e) {
            throw new RuntimeException(e.getMessage(), e);
        }
    }
 
    /**
     * 获取支付通用API Client
     *
     * @return 支付通用API Client
     */
    public com.alipay.easysdk.payment.common.Client Common() throws Exception {
        return new com.alipay.easysdk.payment.common.Client(new Client(context));
    }
 
    /**
     * 获取花呗相关API Client
     *
     * @return 花呗相关API Client
     */
    public com.alipay.easysdk.payment.huabei.Client Huabei() throws Exception {
        return new com.alipay.easysdk.payment.huabei.Client(new Client(context));
    }
 
    /**
     * 获取当面付相关API Client
     *
     * @return 当面付相关API Client
     */
    public com.alipay.easysdk.payment.facetoface.Client FaceToFace() throws Exception {
        return new com.alipay.easysdk.payment.facetoface.Client(new Client(context));
    }
 
    /**
     * 获取电脑网站支付相关API Client
     *
     * @return 电脑网站支付相关API Client
     */
    public com.alipay.easysdk.payment.page.Client Page() throws Exception {
        return new com.alipay.easysdk.payment.page.Client(new Client(context));
    }
 
    /**
     * 获取手机网站支付相关API Client
     *
     * @return 手机网站支付相关API Client
     */
    public com.alipay.easysdk.payment.wap.Client Wap() throws Exception {
        return new com.alipay.easysdk.payment.wap.Client(new Client(context));
    }
 
    /**
     * 获取手机APP支付相关API Client
     *
     * @return 手机APP支付相关API Client
     */
    public com.alipay.easysdk.payment.app.Client App() throws Exception {
        return new com.alipay.easysdk.payment.app.Client(new Client(context));
    }
 
 
    /**
     * 获取图片相关API Client
     *
     * @return 图片相关API Client
     */
    public com.alipay.easysdk.base.image.Client Image() throws Exception {
        return new com.alipay.easysdk.base.image.Client(new Client(context));
    }
 
    /**
     * 获取视频相关API Client
     *
     * @return 视频相关API Client
     */
    public com.alipay.easysdk.base.video.Client Video() throws Exception {
        return new com.alipay.easysdk.base.video.Client(new Client(context));
    }
 
    /**
     * 获取OAuth认证相关API Client
     *
     * @return OAuth认证相关API Client
     */
    public com.alipay.easysdk.base.oauth.Client OAuth() throws Exception {
        return new com.alipay.easysdk.base.oauth.Client(new Client(context));
    }
 
    /**
     * 获取小程序二维码相关API Client
     *
     * @return 小程序二维码相关API Client
     */
    public com.alipay.easysdk.base.qrcode.Client Qrcode() throws Exception {
        return new com.alipay.easysdk.base.qrcode.Client(new Client(context));
    }
 
 
    /**
     * 获取生活号相关API Client
     *
     * @return 生活号相关API Client
     */
    public com.alipay.easysdk.marketing.openlife.Client OpenLife() throws Exception {
        return new com.alipay.easysdk.marketing.openlife.Client(new Client(context));
    }
 
    /**
     * 获取支付宝卡包相关API Client
     *
     * @return 支付宝卡包相关API Client
     */
    public com.alipay.easysdk.marketing.pass.Client Pass() throws Exception {
        return new com.alipay.easysdk.marketing.pass.Client(new Client(context));
    }
 
    /**
     * 获取小程序模板消息相关API Client
     *
     * @return 小程序模板消息相关API Client
     */
    public com.alipay.easysdk.marketing.templatemessage.Client TemplateMessage() throws Exception {
        return new com.alipay.easysdk.marketing.templatemessage.Client(new Client(context));
    }
 
 
    /**
     * 获取支付宝身份认证相关API Client
     *
     * @return 支付宝身份认证相关API Client
     */
    public com.alipay.easysdk.member.identification.Client Identification() throws Exception {
        return new com.alipay.easysdk.member.identification.Client(new Client(context));
    }
 
    /**
     * 获取文本风险识别相关API Client
     *
     * @return 文本风险识别相关API Client
     */
    public com.alipay.easysdk.security.textrisk.Client TextRisk() throws Exception {
        return new com.alipay.easysdk.security.textrisk.Client(new Client(context));
    }
 
    /**
     * 获取OpenAPI通用接口,可通过自行拼装参数,调用几乎所有OpenAPI
     *
     * @return OpenAPI通用接口
     */
    public com.alipay.easysdk.util.generic.Client Generic() throws Exception {
        return new com.alipay.easysdk.util.generic.Client(new Client(context));
    }
 
    /**
     * 获取AES128加解密相关API Client,常用于会员手机号的解密
     *
     * @return AES128加解密相关API Client
     */
    public com.alipay.easysdk.util.aes.Client AES() throws Exception {
        return new com.alipay.easysdk.util.aes.Client(new Client(context));
    }
}