mirror of
https://gitee.com/durcframework/SOP.git
synced 2025-08-11 21:57:56 +08:00
5.1
This commit is contained in:
@@ -28,6 +28,14 @@ const permissionRouter = {
|
||||
title: "签名算法",
|
||||
showLink: false
|
||||
}
|
||||
},
|
||||
{
|
||||
path: "/doc/code",
|
||||
name: "DocCode",
|
||||
meta: {
|
||||
title: "公共错误码",
|
||||
showLink: false
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
334
sop-website/sop-website-frontend/public/static/code.json
Normal file
334
sop-website/sop-website-frontend/public/static/code.json
Normal 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":"业务异常"
|
||||
}
|
||||
]
|
@@ -224,7 +224,5 @@ export const http = new PureHttp();
|
||||
* @param path 相对于public文件夹路径,如文件在public/static/sign.md,填:static/sign.md
|
||||
*/
|
||||
export function getFile(path) {
|
||||
return Axios.get(path, {
|
||||
responseType: "text"
|
||||
});
|
||||
return Axios.get(path);
|
||||
}
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
@@ -1,3 +0,0 @@
|
||||
import { ref } from "vue";
|
||||
|
||||
export const value = ref("");
|
@@ -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>
|
||||
|
Reference in New Issue
Block a user