1 ///
2 /// 微信小程序-获取登陆凭证
3 /// ></p>
4 /// ></p>
5 /// ></p>
6 ( _)
7 {
8
9 = .();
10 _ = .;
11 (.(_))
12 {
13 ("未获取到_");
14 }
15 = .("");
16 = .("");
17
18
19 = ();
20 . = ...8;
21
22
23 //第一步:通过换取网页授权_
24 = ();
25 .("", );
26 .("", );
27 .("_", _);
28 .("_", "_");
29 = ...8.(.("://...//2?", ));
30 (.(""))
31 {
32 = ...();
33 (.);
34 }
35 //反序列化
36 = ...();
37
38 = (48, 0, 0);
39 _ = .().();
40
41 //写入
42 .("__"+ _, , , .);
43
44 (_);
45 }
49 77
78 ///
79 /// 根据微信小程序平台提供的解密算法解密数据
80 /// ></p>
81 /// 加密数据></p>
82 /// 初始向量></p>
83 /// 从服务端获取的></p>
84 /// ></p>
85 ( , _)
86 {
87
88 //创建解密器生成工具实例
89 = ();
90
91 //设置解密器参数
92
93 . = .;
94
95 . = 128;
96
97 . = .7;
98
99 //格式化待处理字符串
100
101 [] _ = .64(.);
102
103 [] _ = .64(.);
104
105 [] _ = .64(_);
106
107 . = _;
108
109 . = _;
110
111 //根据设置好的数据生成解密器实例
112
113 = .();
115 //解密
116
117 [] = .(_, 0, _.);
118
119 //生成结果
120
121 = .8.();
122
123 //反序列化结果,生成用户信息实例
124
125 = ...();
126
127 ;
128
129 }
130
131
132 ///
133 /// 获取微信小程序用户信息
134 /// ></p>
135 /// .></p>
136 /// ></p>
137 ( _)
138 {
139 = .();
140 = .("__"+._, .);
141 (== )
142 {
143 ("找不到登录密钥");
144 }
145
146 //数据解密,解密手机等重要信息
147 = (,._);
148
149 (==)
150 {
151 ("数据解密失败");
152 }
153
154 = .().().(0,8);
156 = "";
157
158 #
159 //查询数据库是否有(没有的话,有的话更新)是微信用户唯一标识符
160 ( != )
161 {
162 . = .;
163 . = .;
164 //进行实例
165 = .;
166 }
167
168 {
169 //进行 171 ._ = _;
172 . = .;
173 . = .;176
177 = .;
178 }
179 //实例类
180 = ();
181 . = ;
182 . = ;
183 ._ = _;
184 . = .;
185 . = .;
186 . = .;
187 //有效期
188 = (48, 0, 0);
190 //写入
191 .(, , , .);
192
193 #
194
195 ();
196 }
197
198
199 ///
200 /// 错误信息
201 /// ></p>
202
203 {
204 ///
205 /// 错误码
206 /// ></p>
207 { ; ; }
208 ///
209 /// 错误信息
210 /// ></p>
211 { ; ; }
212 }
213
214 ///
215 /// 获取
216 /// ></p>
217
218 {
219 //会话密钥,
220 _ { ; ; }
221 ///
222 /// _接口调用凭证超时时间,单位(秒)
223 /// ></p>
224 _ { ; ; }
225 ///
226 /// 获取到的凭证
227 /// ></p>
228 _ { ; ; }
229 ///
230 /// 用户唯一标识,请注意,在未关注公众时,用户访问公众的网页,也会产生一个用户和公众唯一的
231 /// ></p>
232 { ; ; }
233
234 }
235 299
300 ///
301 /// 加密的数据
302 /// ></p>
303
304
305 {
306 { ; ; }
307
308 { ; ; }
309
310 }
311
312 ///
313 /// 登录获取信息请求参数
314 /// ></p>
315
316 {
317 //自定义登录状态,
318 _ { ; ; }
319
320 { ; ; }
321
322 ///
323 ///加密数据
324 /// ></p>
325 ///
326 /// ></p>
327 { ; ; }
328
329 ///
330 /// 加密算法的初始向量
331 /// ></p>
332 ///
333 /// .
334 /// ></p>
335 { ; ; }
336
337 ///
338 /// 不包括敏感信息的原始数据字符串,用于计算签名
339 /// ></p>
340 ///
341 /// .
342 /// ></p>
343 { ; ; }
344
345 ///
346 /// 校验用户信息
347 /// ></p>
348 ///
349 /// .
350 /// ></p>
351 { ; ; }
352
353 { ; ; }
354
355 ///
356 /// 语言.
357 /// ></p>
358 ///
359 /// .
360 /// ></p>
361 { ; ; }
362
363 }
364
365 ///
366 /// 手机信息
367 /// ></p>
368
369 {
370
371 ///
372 /// 用户的唯一标识
373 /// ></p>
374 { ; ; }
375 ///
376 /// 用户绑定的手机
377 /// ></p>
378 ///
379 /// .
380 /// ></p>
381 { ; ; }
382 ///
383 /// 没有区的手机
384 /// ></p>
385 ///
386 /// .
387 /// ></p>
388 { ; ; }
389 ///
390 /// 区
391 /// ></p>
392 ///
393 /// .
394 /// ></p>
395 { ; ; }
396
397
398 { ; ; }
399 }