shish 2 月之前
父节点
当前提交
f88a26b406
共有 1 个文件被更改,包括 41 次插入2 次删除
  1. 41 2
      common/components/miniUtil.php

+ 41 - 2
common/components/miniUtil.php

@@ -1573,6 +1573,32 @@ class miniUtil
         return $result;
     }
 
+    /**
+     * 记录 getwxacodeunlimit 响应(成功为 JPEG 二进制,失败为 JSON,不可 json_encode 整段 body)
+     */
+    private static function logWxacodeUnlimitResponse(array $context, $result)
+    {
+        $body = is_string($result) ? $result : '';
+        $bytes = strlen($body);
+        $contextJson = Json::encode($context);
+
+        if ($bytes > 0 && isset($body[0]) && $body[0] === '{') {
+            try {
+                $err = Json::decode($body, true);
+                if (is_array($err)) {
+                    Yii::error('小程序码接口返回错误 context=' . $contextJson . ' response=' . Json::encode($err), __METHOD__);
+                    return;
+                }
+            } catch (\Exception $e) {
+                Yii::warning('小程序码接口返回疑似 JSON 但解析失败 context=' . $contextJson . ' preview=' . substr($body, 0, 200), __METHOD__);
+                return;
+            }
+        }
+
+        $isJpeg = $bytes >= 2 && substr($body, 0, 2) === "\xFF\xD8";
+        Yii::info('小程序码接口返回图片 context=' . $contextJson . ' bytes=' . $bytes . ' is_jpeg=' . ($isJpeg ? 1 : 0), __METHOD__);
+    }
+
     //小程序码生成,永久有效,数量暂无限制 ssh 2020.4.17
     public static function normalizeMiniEnvVersion($envVersion = 'release')
     {
@@ -1609,7 +1635,14 @@ class miniUtil
             $data["env_version"] = $envVersion;
         }
         $result = $curl->setOption(CURLOPT_POSTFIELDS, Json::encode($data))->post($url);
-        Yii::info('获取小程序图片资源:' . json_encode($result));
+        self::logWxacodeUnlimitResponse([
+            'merchantId' => $id,
+            'page' => $page,
+            'scene' => $scene,
+            'ptStyle' => $ptStyle,
+            'env_version' => $envVersion,
+            'saveAs' => $behind . $fileName,
+        ], $result);
         file_put_contents($file, $result);
         //上传oss
         $obj = $behind . $fileName;
@@ -1641,7 +1674,13 @@ class miniUtil
         }
         $data["scene"] = $scene;
         $result = $curl->setOption(CURLOPT_POSTFIELDS, Json::encode($data))->post($url);
-        Yii::info('获取小程序图片资源:' . json_encode($result));
+        self::logWxacodeUnlimitResponse([
+            'merchantId' => $id,
+            'page' => $page,
+            'scene' => $scene,
+            'ptStyle' => $ptStyle,
+            'saveAs' => $behind . $fileName,
+        ], $result);
         file_put_contents($file, $result);
         //上传oss
         $obj = $behind . $fileName;