north 8 éve
szülő
commit
7f9c8fde52

+ 2 - 2
www/protected/components/CommonWeixin.php

@@ -18,9 +18,9 @@ class CommonWeixin
         return $signPackage;
     }
 	
-	public static function getAccessInfo($code) {
+	public static function getAccessInfo($code,$appId =null,$secret = null) {
 		$wxConfig = Yii::app()->params['wxConfig'];
-		$accessTokenURI = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $wxConfig['appId'] . '&secret=' . $wxConfig['appSecret'] . '&code=' . $code . '&grant_type=authorization_code';
+		$accessTokenURI = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . ($appId?$appId:$wxConfig['appId']) . '&secret=' . ($secret?$secret:$wxConfig['appSecret']) . '&code=' . $code . '&grant_type=authorization_code';
 		$res = json_decode(self::httpGet($accessTokenURI), true);
 		
 		return $res;

+ 62 - 0
www/protected/modules/o2o/controllers/WeChatController.php

@@ -0,0 +1,62 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: north
+ * Date: 2017/9/6
+ * Time: 下午5:06
+ */
+class WeChatController extends O2oBaseController {
+    public function actionGetUserInfo() {
+        $code = Yii::app()->request->getParam('code','');
+        $appid = 'wx6b0b0b86fb5e5e4a';
+        $secret = '5889e1d6d642b71e22af0f33b85cd92e';
+
+        $accessInfo = CommonWeixin::getAccessInfo($code,$appid,$secret);
+        var_dump($accessInfo);
+        $userInfo = CommonWeixin::getUserInfo($accessInfo['access_token'], $accessInfo['openid']);
+        var_dump($userInfo);exit;
+        $criteria = new EMongoCriteria();
+        $criteria->unionid('==', $accessInfo['unionid']);
+        $user = RUser::model()->find($criteria);
+
+        if ($user) {
+            $userId = $user->_id;
+            if(!isset($user->wx_pub_openid) || empty($user->wx_pub_openid)){
+                $user->wx_pub_openid = $accessInfo['openid'];
+                $user->wx_have_follow = 1;
+                $user->update(array('wx_pub_openid','wx_have_follow'),true);
+            }
+        }else{
+            $userAr  = new RUser();
+            $userAr->user_name = $userInfo['nickname'];
+            $userAr->avatar = $userInfo['headimgurl'];
+            $userAr->wx_pub_openid = $userInfo['openid'];
+            $userAr->unionid = $userInfo['unionid'];
+            $userAr->sex = $userInfo['sex'];
+            $userAr->register_time = time();
+            $userAr->channel = 'wxpub';
+            $userAr->wx_have_follow = 1;
+            $u_criteria = new EMongoCriteria();
+            $u_criteria->user_name('==',$userInfo['nickname']);
+            $olduser = RUser::model()->find($u_criteria);
+            if($olduser){
+                $user_new_neme = $userAr->user_name.'_'.substr(time(),-7);
+                $userAr->user_name = $user_new_neme;
+            }
+
+            $result = $userAr->save();
+            if($result){
+                //异步同步微信头像到七牛
+                if (!empty($userAr->unionid) && (strpos($userAr->avatar, 'qiniu') === false)) {
+                    $list = new ARedisList('after_user_reg');
+                    $user_id = (string)$userAr->_id;
+                    $list->push($user_id);
+                }
+                $userId = (string)$userAr->_id;
+
+            }else{
+                var_dump($userAr);exit;
+            }
+        }
+    }
+}