wesmiler 1 miesiąc temu
rodzic
commit
71507bc99d

+ 11 - 3
app/Services/Api/MemberService.php

@@ -247,7 +247,8 @@ class MemberService extends BaseService
 
             $data = [
                 'nickname' => $nickname? $nickname : '用户' . $userId,
-                'openid' => $openid,
+                'openid' => $platform!='wechat'?$openid:'',
+                'wechat_openid' => $platform=='wechat'?$openid:'',
                 'unionid' => $unionid,
                 'mobile' => '',
                 'avatar' => $avatar,
@@ -279,7 +280,9 @@ class MemberService extends BaseService
                 'device' => $appSources == 'ios' ? 1 : 2,
                 'mark' => 1,
             ];
-            if ($openid) {
+            if ($openid && $platform=='wechat') {
+                $updateData['wechat_openid'] = $openid;
+            }else if ($openid) {
                 $updateData['openid'] = $openid;
             }
 
@@ -299,9 +302,14 @@ class MemberService extends BaseService
                 $data['nickname'] = $nickname;
                 $data['avatar'] = $avatar;
                 $data['mobile'] = '';
-                $data['openid'] = $openid;
                 $data['unionid'] = $unionid;
                 $mobile = '';
+
+                if ($openid && $platform=='wechat') {
+                    $data['wechat_openid'] = $openid;
+                }else if ($openid) {
+                    $data['openid'] = $openid;
+                }
             }
             $this->model->where(['id' => $userId])->update($updateData);
             RedisService::set("caches:members:login_{$userId}", $updateData, rand(30, 60));

+ 6 - 3
app/Services/Api/OrderService.php

@@ -238,12 +238,17 @@ class OrderService extends BaseService
             return false;
         }
 
+        $system = isset($params['system']) && $params['system'] ? $params['system'] : [];
+        $platform = isset($system['platform']) && $system['platform']? $system['platform'] : 'mp';
+
         // 用户信息
         $userInfo = MemberModel::where(['id' => $userId, 'mark' => 1])
-            ->select(['id', 'openid', 'mobile', 'nickname', 'realname', 'balance', 'status'])
+            ->select(['id', 'openid','wechat_openid', 'mobile', 'nickname', 'realname', 'balance', 'status'])
             ->first();
         $status = isset($userInfo['status']) ? $userInfo['status'] : 0;
         $openid = isset($userInfo['openid']) ? $userInfo['openid'] : '';
+        $wechatOpenid = isset($userInfo['wechat_openid']) &&$userInfo['wechat_openid'] ? $userInfo['wechat_openid'] : $openid;
+        $openid = $platform=='wechat'?$wechatOpenid:$openid;
         if (empty($userInfo) || $status != 1) {
             $this->error = 1045;
             RedisService::clear($cacheLockKey);
@@ -329,8 +334,6 @@ class OrderService extends BaseService
         ];
 
         // 调起支付
-        $system = isset($params['system']) && $params['system'] ? $params['system'] : [];
-        $platform = isset($system['platform']) && $system['platform']? $system['platform'] : 'mp';
         if($platform == 'wechat'){
             $payment = PaymentService::make()->mpPay($userInfo, $payOrder, 'store');
         }else{