Procházet zdrojové kódy

如在小程序端已经授权用户信息和unionId之后,关注公众号会走这里

shish před 6 roky
rodič
revize
12e73073f3
1 změnil soubory, kde provedl 14 přidání a 3 odebrání
  1. 14 3
      biz/user/classes/UserClass.php

+ 14 - 3
biz/user/classes/UserClass.php

@@ -487,6 +487,11 @@ class UserClass extends BaseClass
 	public static function replaceUser($userInfo, $source, $merchantId)
 	{
 		$userInfo = self::switchUserInfo($userInfo, $source);
+		$unionId = isset($userInfo['unionId']) && !empty($userInfo['unionId']) ? $userInfo['unionId'] : '';
+		$unionUser = [];
+		if (!empty($unionId)) {
+			$unionUser = self::getByUnionId($unionId);
+		}
 		$userSource = self::$userSourceId;
 		switch ($source) {
 			case $userSource['mini']['name']:
@@ -512,9 +517,15 @@ class UserClass extends BaseClass
 				throw new \Exception('未知来源的用户');
 		}
 		if (empty($user)) {
-			$userInfo['source'] = $sourceId;
-			$userInfo['merchantId'] = $merchantId;
-			$user = self::generateUser($userInfo, $merchantId);
+			if (!empty($unionUser)) {
+				//如在小程序端已经授权用户信息和unionId之后,关注公众号会走这里
+				$user = self::updateUser($unionUser, $userInfo, $merchantId);
+			} else {
+				$userInfo['source'] = $sourceId;
+				$userInfo['merchantId'] = $merchantId;
+				$user = self::generateUser($userInfo, $merchantId);
+			}
+			
 		} else {
 			//支付宝付款时不需要每次更新用户信息
 			if ($source != $userSource['alipay']['name']) {