浏览代码

得润宝

cqp 2 周之前
父节点
当前提交
b4a8eeb176
共有 1 个文件被更改,包括 15 次插入26 次删除
  1. 15 26
      app/Service/DrbService.php

+ 15 - 26
app/Service/DrbService.php

@@ -130,13 +130,13 @@ class DrbService extends Service
         if (! $success) return [false, $tokenData]; // tokenData 是错误信息
         $accessToken = $tokenData['access_token'];
 
-        // 2. 用 code 换取 userid
-        $url = "https://api.dingtalk.com/v1.0/user/getuserinfo";
+        // 2. 用 code 换取用户信息(v2 接口)
+        $url = "https://oapi.dingtalk.com/topapi/v2/user/getuserinfo?access_token={$accessToken}";
+
         $resp = $this->curlOpen1($url, [
             'request' => 'post',
             'header'  => [
                 "Content-Type: application/json",
-                "x-acs-dingtalk-access-token: {$accessToken}"
             ],
             'json'    => [
                 "code" => $code
@@ -144,33 +144,22 @@ class DrbService extends Service
         ]);
 
         $res = json_decode($resp, true);
-        $userid = $res['result']['userid'] ?? null;
+
+        if (!isset($res['errcode'])) {
+            return [false, '接口返回异常: ' . $resp];
+        }
+
+        if ($res['errcode'] !== 0) {
+            return [false, '获取用户信息失败: ' . $res['errmsg']];
+        }
+
+        // v2 接口返回的是 result.user_id
+        $userid = $res['result']['user_id'] ?? null;
         if (!$userid) {
-            return [false, '获取userid失败:' . $res['errmsg']];
+            return [false, '获取userid失败'];
         }
 
         return [true, $res];
-
-//        // 3. 根据 userid 获取用户详情
-//        $urlDetail = "https://api.dingtalk.com/v1.0/user/get";
-//        $respDetail = $this->curlOpen1($urlDetail, [
-//            'request' => 'post',
-//            'header'  => [
-//                "Content-Type: application/json",
-//                "x-acs-dingtalk-access-token: {$accessToken}"
-//            ],
-//            'json'    => [
-//                "userid" => $userid
-//            ]
-//        ]);
-//
-//        $detail = json_decode($respDetail, true);
-//        if (empty($detail['result'])) {
-//            return [false, '获取用户详情失败:' . ($detail['msg'] ?? json_encode($detail))];
-//        }
-
-        // 返回用户信息
-//        return [true, $detail['result']];
     }