API 文档
sign加密方式
签名生成步骤
1、参数排序:ksort($pars, SORT_STRING) 对 $pars 数组按键名排序。
2、构建字符串:排除键名为 sign、answer_data 和 answer_mark 的键值对将其他键值对格式化为 key=value 并附加 &。末尾追加 key= 和 $appkey。
3、加密:使用 md5($string1) 生成 32 位哈希值。使用 strtoupper 转换为大写。
function getsign($pars, $appkey) { ksort($pars, SORT_STRING); $string1 = ''; foreach ($pars as $k => $v) { if($k != 'sign' && $k != 'answer_data' && $k != 'answer_mark'){ $string1 .= "$k=$v&"; } } $string1 .= "key=" . $appkey; return strtoupper(md5($string1)); }
获取某类产品列表
请求地址
/api/exam/getExams
请求参数
参数名 | 类型 | 描述 | 是否必传 | 是否参与加密 |
---|---|---|---|---|
channel_id | number | 产品分类id | 是 | 是 |
api_key (点击查看) | string | 对接请求生成的密钥 | 是 | 否 |
sign | string | 请求加密的参数 | 是 | 否 |
成功返回示例【返回json格式】
{
"code": 1,
"msg": "ok",
"time": "1726037335",
"data": {
"data": {
"code": 1,
"msg": "操作成功",
"time": "1726039679",
"data": {
"data": [{
"api_id": 18,
"title": "MBTI测试93题(标准版)",
"image": "http:\/\/api.nbmgkj.com\/uploads\/20240226\/4109152d35f3fe54b8d48e2bb3bc4e3d.jpg",
"question_num": 93,
"channel_id": 10
}, {
"api_id": 23,
"title": "MBTI测试72题(经典版)",
"image": "http:\/\/api.nbmgkj.com\/uploads\/20240226\/ff69bece8186ec117ae77fc2a65c766f.jpg",
"question_num": 72,
"channel_id": 10
}]
}
}
失败返回示例【返回json格式】
{
"code": 10002,
"msg": "签名不正确",
"time": "1726039834",
"data": ""
}
获取单个产品信息
请求地址
/api/exam/getExamInfo
请求参数
参数名 | 类型 | 描述 | 是否必传 | 是否参与加密 |
---|---|---|---|---|
api_id | number | 产品id | 是 | 是 |
api_key (点击查看) | string | 对接请求生成的密钥 | 是 | 否 |
sign | string | 请求加密的参数 | 是 | 否 |
成功返回示例【返回json格式】
{
"code": 1,
"msg": "ok",
"time": "1726037335",
"data": {
"data": {
"api_id": 194,
"title": "mbti测试题",
"back_type": 4,
"content": "mbti测试题的介绍",
"image": "\/uploads\/20240224\/636a17bb0f7f3cdf5266f8dc114a5902.png",
"channel_id": 30,
"question_num": 72
}
}
}
失败返回示例【返回json格式】
{
"code": 10002,
"msg": "签名不正确",
"time": "1726039834",
"data": ""
}
获取测试题问题
请求地址
/api/exam/getQuestions
请求参数
参数名 | 类型 | 描述 | 是否必传 | 是否参与加密 |
---|---|---|---|---|
api_id | number | 产品id | 是 | 是 |
api_key (点击查看) | string | 对接请求生成的密钥 | 是 | 否 |
sign | string | 请求加密的参数 | 是 | 否 |
成功返回示例【返回json格式】
{
"code": 1,
"msg": "操作成功",
"time": "1726040211",
"data": {
"question_data": [{
"id": 1959,
"question": "下列描述中最符合你的是:",
"selectdata": [{
"key": "A",
"value": "我浪漫并富于幻想。"
}, {
"key": "B",
"value": "我很实际并实事求是。"
}]
}, {
"id": 1960,
"question": "下列描述中最符合你的是:",
"selectdata": [{
"key": "A",
"value": "我倾向于接受冲突。"
}, {
"key": "B",
"value": "我倾向于避免冲突。"
}]
}
.................................
],
"count": 144
}
}
失败返回示例【返回json格式】
{
"code": 10002,
"msg": "签名不正确",
"time": "1726039834",
"data": ""
}
提交测试记录获取解析
请求地址
/api/exam/getExamResult
请求参数
参数名 | 类型 | 描述 | 是否必传 | 是否参与加密 |
---|---|---|---|---|
api_id | number | 产品id | 是 | 是 |
answer_data | json | 复杂测试传,如[{"qid":1959,"answer":"A"},{"qid":1960,"answer":"B"},{"qid":1961,"answer":"B"}] | 是 | 否 |
answer_mark | json | 简单测试传,如A,B | 是 | 否 |
api_key (点击查看) | string | 对接请求生成的密钥 | 是 | 否 |
sign | string | 请求加密的参数 | 是 | 否 |
成功返回示例【返回json格式】
{
"code": 1,
"msg": "ok",
"time": "1726041840",
"data": {
"three_user_id": "",
"out_trade_no": "QF2024091116040048575398_kp1",
"stat_data": {
"data": {
"E": {
"name": "E",
"score": 2
},
"N": {
"name": "N",
"score": 2
},
.....................
},
"rate": {
"E": 67,
"N": 67,
.....................
}
},
"answer_info": {
"id": 17,
"content": "1.反应快****问题。",
"title": "ENTP",
"mark": "ENTP",
"intro": "外倾|****|知觉",
"type": 0,
"cover": "",
"product_id": 104,
"max_score": 0,
"full_cover": "http:\/\/api.nbmgkj.com"
},
"answer_back": [{
"id": 17,
"content": "1.反应快****问题.",
"title": "ENTP",
"mark": "ENTP",
"intro": "外倾|****|知觉",
"type": 0,
"cover": "",
"product_id": 104,
"max_score": 0,
"full_cover": "http:\/\/api.nbmgkj.com"
}],
"back_type": 0,
"show_type": "mount",
"max_score": 0,
"res_txt": "ENTP"
}
}
失败返回示例【返回json格式】
{
"code": 10002,
"msg": "签名不正确",
"time": "1726039834",
"data": ""
}
错误参照码
返回码 | 说明 |
---|---|
10001 | 您没有开通该产品 |
10002 | 签名不正确 |
10003 | 当前等级今日次数已达上限~ |
10004 | 请求出错 |
10005 | 测试题不存在 |
10006 | 获取起始参数有误 |
10007 | 请选择产品栏目 |
10008 | 产品id不能为空 |
10009 | 产品不存在 |
10010 | 使用额度不足,请充值 |
10011 | 当前无该产品的调用权限 |
10012 | 提交的答案格式或编号有误,请仔细核对 |
11000 | 日志记录出错 |