1 <?php
2 namespace wechat\controllers\classes;
3
4 use common\tools\wechat\OauthTool;
5 use common\models\User;
6 use common\tools\EmojiTool;
7
8 /**
9 * 微信用户基本信息获取
10 */
11 class UserinfoClass {
12
13 /**
14 * 用户授权并获取code
15 * @return string 用户code
16 */
17 public function getCode($route, $state){
18
19 $re = new OauthTool;
20 $request = $re->authorize_addr($route, $state);
21 $code = isset($_GET['code']) ? $_GET['code'] : '';
22
23 return [$request,$code];
24 }
25
26 /**
27 * 获取用户信息并写入数据库(之后加参数传给code)
28 */
29 public function info($code) {
30 $re = new OauthTool;
31 //获取access token
32 $access = $re->access_token($code);
33 $token = json_decode($access,true);
34 //header("Content-type: text/html; charset=gbk");
35 //获取用户信息
36 if(count($token) != 2) {
37 $response = $re->userinfo($token['access_token'], $token['openid']);
38 $user = json_decode($response,true);
39 //用户昵称转换
40 //$user['nickname'] = EmojiTool::emoji_trans($user['nickname']);
41
42 if($model = User::findOne(['openid' => $user['openid'] ])) { //用户已存在更新数据
43 $model->attributes = $user;
44 $model->modify_time = time();
45 $model->save(false);
46 }else{ //用户不存在写入
47 $model = new User;
48 $model->attributes = $user;
49 $model->create_time = time();
50 $model->save(false);
51 }
52 }
53 return isset($model->id) ? $model->id : '';
54 }
55
56 }
1 /**
2 * 产品列表
3 * @return object 所有可用产品信息
4 */
5 public function actionInd