Explorar el Código

fix: 接入文档PHP签名示例补JSON_UNESCAPED_UNICODE

中文默认被转义为\uXXXX, 与文档示例及后端验签的UTF-8原始编码不一致,
导致按示例加签验签失败。
alphaH hace 1 semana
padre
commit
9595e6e4e2
Se han modificado 1 ficheros con 3 adiciones y 1 borrados
  1. 3 1
      frontend/src/views/module_payment/apikey/index.vue

+ 3 - 1
frontend/src/views/module_payment/apikey/index.vue

@@ -1280,7 +1280,9 @@ class SignatureGenerator
         $collect = [];
         foreach ($filteredData as $key => $value) {
             if (is_array($value)) {
-                $value = json_encode($value, JSON_UNESCAPED_SLASHES);
+                // 注意: 必须加 JSON_UNESCAPED_UNICODE, 否则中文会被转义为 \uXXXX,
+                // 与文档示例及后端验签的 UTF-8 原始编码不一致, 导致签名验证失败
+                $value = json_encode($value, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
             }
             $encodedValue = rawurlencode((string)$value);
             $collect[] = "{$key}={$encodedValue}";