cqp 1 Minggu lalu
induk
melakukan
aafb8abf9b
1 mengubah file dengan 13 tambahan dan 7 penghapusan
  1. 13 7
      app/Http/Controllers/Api/DingTalkController.php

+ 13 - 7
app/Http/Controllers/Api/DingTalkController.php

@@ -70,21 +70,27 @@ class DingTalkController extends BaseController
         $crypt = new DingTalkCrypto($token, $aesKey);
 
         // 1. 获取钉钉传来的参数
+        $msgSignature = $request->get('msg_signature'); // 注意
         $signature = $request->get('signature');
         $timestamp = $request->get('timestamp');
         $nonce     = $request->get('nonce');
         $encrypt   = $request->input('encrypt');
 
         // 2. 解密
-        $event = $crypt->decryptMsg($signature, $timestamp, $nonce, $encrypt);
+        $event = $crypt->decryptMsg($msgSignature, $timestamp, $nonce, $encrypt);
         if ($event === false) {
-            Log::error('钉钉解密失败', [
-                'signature' => $signature,
-                'timestamp' => $timestamp,
-                'nonce'     => $nonce,
-                'encrypt'   => $encrypt
+            Log::error('钉钉解密失败', compact('msgSignature','timestamp','nonce','encrypt'));
+            return response()->json([
+                'errcode' => 40001,
+                'errmsg' => 'decrypt fail'
             ]);
-            return response()->json(['errcode' => 1, 'errmsg' => '解密失败']);
+//            Log::error('钉钉解密失败', [
+//                'msg_signature' => $msgSignature,
+//                'timestamp' => $timestamp,
+//                'nonce'     => $nonce,
+//                'encrypt'   => $encrypt
+//            ]);
+//            return response()->json(['errcode' => 1, 'errmsg' => '解密失败']);
         }
 
         Log::info('钉钉解密后的事件数据', $event);