This commit is contained in:
六如
2024-12-30 20:49:17 +08:00
parent 40865ab049
commit 3e900cf0fe
27 changed files with 2232 additions and 117 deletions

View File

@@ -28,6 +28,14 @@ const permissionRouter = {
title: "签名算法",
showLink: false
}
},
{
path: "/doc/code",
name: "DocCode",
meta: {
title: "公共错误码",
showLink: false
}
}
]
};

View File

@@ -0,0 +1,334 @@
[
{
"children":[
],
"code":"0",
"id":1,
"msg":"成功"
},
{
"children":[
{
"id":3,
"solution":"重新获取token",
"sub_code":"aop.invalid-auth-token",
"sub_msg":"无效的访问令牌"
},
{
"id":4,
"solution":"重新获取token",
"sub_code":"aop.auth-token-time-out",
"sub_msg":"访问令牌已过期"
},
{
"id":5,
"solution":"重新获取token",
"sub_code":"aop.invalid-app-auth-token",
"sub_msg":"无效的应用授权令牌"
},
{
"id":6,
"solution":"联系平台进行授权",
"sub_code":"aop.invalid-app-auth-token-no-api",
"sub_msg":"商户未授权当前接口"
},
{
"id":7,
"solution":"重新获取token",
"sub_code":"aop.app-auth-token-time-out",
"sub_msg":"应用授权令牌已过期"
},
{
"id":8,
"solution":"联系平台处理",
"sub_code":"aop.no-product-reg-by-partner",
"sub_msg":"商户未签约任何产品"
}
],
"code":"20001",
"id":2,
"msg":"认证异常"
},
{
"children":[
{
"id":10,
"solution":"检查参数正确",
"sub_code":"isv.invalid-parameter",
"sub_msg":"参数无效"
},
{
"id":11,
"solution":"检查传参",
"sub_code":"isv.error-parameter",
"sub_msg":"参数不正确"
},
{
"id":12,
"solution":"检查上传文件",
"sub_code":"isv.upload-fail",
"sub_msg":"文件上传失败"
},
{
"id":13,
"solution":"检查文件后缀名",
"sub_code":"isv.invalid-file-extension",
"sub_msg":"文件扩展名无效"
},
{
"id":14,
"solution":"检查文档大小",
"sub_code":"isv.invalid-file-size",
"sub_msg":"{0}文件大小无效,单文件不得超过{1}"
},
{
"id":15,
"solution":"检查接口名称是否正确",
"sub_code":"isv.invalid-method",
"sub_msg":"不存在的方法名"
},
{
"id":16,
"solution":"检查format参数是否正确",
"sub_code":"isv.invalid-format",
"sub_msg":"无效的数据格式"
},
{
"id":17,
"solution":"检查sign_type是否正确",
"sub_code":"isv.invalid-signature-type",
"sub_msg":"无效的签名类型"
},
{
"id":18,
"solution":"检查签名结果是否正确",
"sub_code":"isv.invalid-signature",
"sub_msg":"无效签名"
},
{
"id":19,
"solution":"检查签名结果是否正确",
"sub_code":"isv.invalid-encrypt-type",
"sub_msg":"无效的加密类型"
},
{
"id":20,
"solution":"检查签名结果是否正确",
"sub_code":"isv.invalid-encrypt",
"sub_msg":"解密异常"
},
{
"id":21,
"solution":"检查appId是否正确",
"sub_code":"isv.invalid-app-id",
"sub_msg":"无效的 appId 参数"
},
{
"id":22,
"solution":"检查时间戳格式是否正确",
"sub_code":"isv.invalid-timestamp",
"sub_msg":"非法的时间戳参数"
},
{
"id":23,
"solution":"检查charset参数是否正确",
"sub_code":"isv.invalid-charset",
"sub_msg":"字符集错误"
},
{
"id":24,
"solution":"检查签名",
"sub_code":"isv.invalid-digest",
"sub_msg":"摘要错误"
},
{
"id":25,
"solution":"",
"sub_code":"isv.decryption-error-not-valid-encrypt-type",
"sub_msg":"解密出错,不支持的加密算法"
},
{
"id":26,
"solution":"",
"sub_code":"isv.decryption-error-not-valid-encrypt-key",
"sub_msg":"解密出错, 未配置加密密钥或加密密钥格式错误"
},
{
"id":27,
"solution":"",
"sub_code":"isv.decryption-error-unknown",
"sub_msg":"解密出错,未知异常"
},
{
"id":28,
"solution":"",
"sub_code":"isv.missing-signature-config",
"sub_msg":"验签出错, 未配置对应签名算法的公钥或者证书"
},
{
"id":29,
"solution":"",
"sub_code":"isv.not-support-app-auth",
"sub_msg":"本接口不支持第三方代理调用"
},
{
"id":30,
"solution":"",
"sub_code":"isv.suspected-attack",
"sub_msg":"可疑的攻击请求"
},
{
"id":31,
"solution":"",
"sub_code":"isv.invalid-content-type",
"sub_msg":"无效的 content-type"
}
],
"code":"40002",
"id":9,
"msg":"错误参数"
},
{
"children":[
{
"id":33,
"solution":"检查接口名",
"sub_code":"isv.missing-method",
"sub_msg":"缺少方法名参数"
},
{
"id":34,
"solution":"检查签名sign参数",
"sub_code":"isv.missing-signature",
"sub_msg":"缺少签名参数"
},
{
"id":35,
"solution":"检查签名类型参数",
"sub_code":"isv.missing-signature-type",
"sub_msg":"缺少签名类型参数"
},
{
"id":36,
"solution":"",
"sub_code":"isv.missing-signature-key",
"sub_msg":"缺少签名配置"
},
{
"id":37,
"solution":"appId参数必填",
"sub_code":"isv.missing-app-id",
"sub_msg":"缺少 appId 参数"
},
{
"id":38,
"solution":"时间戳参数必填",
"sub_code":"isv.missing-timestamp",
"sub_msg":"缺少时间戳参数"
},
{
"id":39,
"solution":"版本号参数必填",
"sub_code":"isv.missing-version",
"sub_msg":"缺少版本参数"
},
{
"id":40,
"solution":"",
"sub_code":"isv.decryption-error-missing-encrypt-type",
"sub_msg":"解密出错, 未指定加密算法"
}
],
"code":"40001",
"id":32,
"msg":"缺少参数"
},
{
"children":[
{
"id":42,
"solution":"网关异常",
"sub_code":"isp.unknown-error",
"sub_msg":"服务暂不可用"
},
{
"id":43,
"solution":"服务提供异常",
"sub_code":"isp.service-unknown-error",
"sub_msg":"服务不可用"
},
{
"id":44,
"solution":"服务不可用",
"sub_code":"isp.service-not-available",
"sub_msg":"服务暂不可用"
},
{
"id":45,
"solution":"联系平台排查日志",
"sub_code":"isp.gateway-response-timeout",
"sub_msg":"网关响应超时"
},
{
"id":46,
"solution":"联系平台排查日志",
"sub_code":"isv.service-busy",
"sub_msg":"服务器忙"
}
],
"code":"99999",
"id":41,
"msg":"未知异常"
},
{
"children":[
{
"id":48,
"solution":"接口无权限,联系平台授权",
"sub_code":"isv.insufficient-isv-permissions",
"sub_msg":"请检查配置的账户是否有当前接口权限"
},
{
"id":49,
"solution":"联系平台授权",
"sub_code":"isv.insufficient-user-permissions",
"sub_msg":"代理的商户没有当前接口权限"
},
{
"id":50,
"solution":"联系平台授权",
"sub_code":"isv.route-no-permissions",
"sub_msg":"没有当前接口权限"
},
{
"id":51,
"solution":"访问首先",
"sub_code":"isv.access-forbidden",
"sub_msg":"无权访问"
},
{
"id":52,
"solution":"IP受限",
"sub_code":"isv.ip-forbidden",
"sub_msg":"IP无权访问"
}
],
"code":"40006",
"id":47,
"msg":"权限异常"
},
{
"children":[
{
"id":54,
"solution":"",
"sub_code":"isp.biz-error",
"sub_msg":"业务异常"
}
],
"code":"50003",
"id":53,
"msg":"业务异常"
}
]

View File

@@ -224,7 +224,5 @@ export const http = new PureHttp();
* @param path 相对于public文件夹路径如文件在public/static/sign.mdstatic/sign.md
*/
export function getFile(path) {
return Axios.get(path, {
responseType: "text"
});
return Axios.get(path);
}

View File

@@ -138,7 +138,19 @@ const defaultProps = {
</span>
</template>
</el-table-column>
<el-table-column label="描述" prop="description" />
<el-table-column label="描述" prop="description">
<template #default="scope">
<span v-if="scope.row.name === 'code'">
网关返回码详见
<router-link :to="{ name: 'DocCode' }" target="_blank">
公共错误码
</router-link>
</span>
<span v-else>
{{ scope.row.description }}
</span>
</template>
</el-table-column>
<el-table-column label="示例值" prop="example" width="200" />
</el-table>
<h4>业务返回参数</h4>

View File

@@ -0,0 +1,31 @@
<script lang="ts" setup>
import { onMounted, ref } from "vue";
import { getFile } from "@/utils/http";
const tableData = ref([]);
onMounted(() => {
getFile("static/code.json").then(resp => {
console.log(resp.data);
tableData.value = resp.data;
});
});
</script>
<template>
<div class="app-container">
<h3>公共错误码</h3>
<div class="isp-info">
<el-table :data="tableData" row-key="id" default-expand-all border>
<el-table-column label="code" prop="code" width="200" />
<el-table-column label="msg" prop="msg" width="200" />
<el-table-column
label="sub_code详细错误码"
prop="sub_code"
width="250"
/>
<el-table-column label="sub_msg详细错误信息" prop="sub_msg" />
<el-table-column label="解决方案" prop="solution" />
</el-table>
</div>
</div>
</template>

View File

@@ -1,3 +0,0 @@
import { ref } from "vue";
export const value = ref("");

View File

@@ -1,10 +1,13 @@
<script setup lang="ts">
import { value } from "./index";
import { onMounted, ref } from "vue";
import { getFile } from "@/utils/http";
import MarkdownEditor from "@/components/MarkdownEditor";
getFile("static/md/sign.md").then(resp => {
value.value = resp.data;
const value = ref("");
onMounted(() => {
getFile("static/md/sign.md").then(resp => {
value.value = resp.data;
});
});
</script>
<template>