简体中文
注意
在需要调用此API的云函数或云对象右键,添加依赖
勾选 uni-cloud-verify 扩展库依赖
云端在操作前,需要先获取 uniVerifyManager 对象实例,然后再通过 uniVerifyManager.xxx 调用对应的API
云端代码
const uniVerifyManager = uniCloud.getUniVerifyManager({
provider: "univerify"
});
请求参数
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
provider | String | 是 | - | 必填,当前固定填写 univerify 即可 |
字段 | 类型 | 说明 |
---|---|---|
errCode | Number | 为0代表请求成功,其他均为请求失败,注意,请求成功不代表验证通过 |
errMsg | String | 请求失败的错误描述 |
data | Object | 请求成功时,服务端返回的数据 |
接口名:mobile2EleVerify
你可以在调用 extStorageManager.mobile2EleVerify 前执行一些自己的业务逻辑,判断用户是否有权限执行此API等等
云端代码
const uniVerifyManager = uniCloud.getUniVerifyManager({
provider: "univerify"
});
let verifyRes = await uniVerifyManager.mobile2EleVerify({
realName: "姓名",
mobile: "手机号",
});
console.log('认证结果: ', verifyRes.data);
请求参数
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
realName | String | 是 | - | 姓名 |
mobile | String | 是 | - | 手机号 |
响应参数
响应字段如下,响应通用字段已省略,详细见响应公共字段
名称 | 类型 | 必须返回 | 描述 |
---|---|---|---|
status | Number | 是 | 认证结果,1-通过 2-不通过 3-查无结果 0-待定 |
reasonType | Number | 否 | 原因详情: 2-认证不一致 3-查无此手机号 4-认证信息格式错误 7-结果获取失败,请重试 |
logId | String | 是 | 本次请求日志id,可以根据该标识在控制台查询结果 |
isPayed | Number | 是 | 本次请求是否收费标识,1代表收费,0代表不收费 |
mobileType | String | 是 | 运营商类型:1-移动,2-联通,3- 电信,9,-未知 |
响应体示例
{
"errCode": 0,
"errMsg": "",
"data": {
"status": 1,
"reasonType": 1,
"logId": "9f9def8638c74506b3f5ef17f893c8b9",
"isPayed": 1,
"mobileType": "3",
"note": ""
}
}
接口名:mobile3EleVerify
你可以在调用 extStorageManager.mobile3EleVerify 前执行一些自己的业务逻辑,判断用户是否有权限执行此API等等
云端代码
const uniVerifyManager = uniCloud.getUniVerifyManager({
provider: "univerify"
});
let verifyRes = await uniVerifyManager.mobile3EleVerify({
realName: "姓名",
idCard: "身份证",
mobile: "手机号",
});
console.log('认证结果: ', verifyRes.data);
请求参数
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
realName | String | 是 | - | 姓名 |
idCard | String | 是 | - | 身份证 |
mobile | String | 是 | - | 手机号 |
响应参数
响应字段如下,响应通用字段已省略,详细见响应公共字段
名称 | 类型 | 必须返回 | 描述 |
---|---|---|---|
status | Number | 是 | 认证结果,1-通过 2-不通过 3-查无结果 0-待定 |
reasonType | Number | 否 | 原因详情: 2-认证不一致 3-该手机号查询无记录 4-认证信息有误 5-号码状态异常(空号、停机等) 6-解析手机号运营商失败 7-其他出错 |
logId | String | 是 | 本次请求日志id,可以根据该标识在控制台查询结果 |
isPayed | Number | 是 | 本次请求是否收费标识,1代表收费,0代表不收费 |
mobileType | String | 是 | 运营商类型:1-移动,2-联通,3- 电信,9,-未知 |
响应体示例
{
"errCode": 0,
"errMsg": "",
"data": {
"status": 1,
"reasonType": 1,
"logId": "9f9def8638c74506b3f5ef17f893c8b9",
"isPayed": 1,
"mobileType": "3",
"note": ""
}
}
接口名:mobile3EleVerifyPro
你可以在调用 extStorageManager.mobile3EleVerifyPro 前执行一些自己的业务逻辑,判断用户是否有权限执行此API等等
详版对比简版优势
手机号三要素认证(详版)比手机号三要素认证(简版)在响应参数 reasonType 上有区别,以下是详版专属返回的类型
因此详版优势为:在认证不一致时,会有更多的提示信息,方便用户排查问题。
云端代码
const uniVerifyManager = uniCloud.getUniVerifyManager({
provider: "univerify"
});
let verifyRes = await uniVerifyManager.mobile3EleVerifyPro({
realName: "姓名",
idCard: "身份证",
mobile: "手机号",
});
console.log('认证结果: ', verifyRes.data);
请求参数
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
realName | String | 是 | - | 姓名 |
idCard | String | 是 | - | 身份证 |
mobile | String | 是 | - | 手机号 |
响应参数
响应字段如下,响应通用字段已省略,详细见响应公共字段
名称 | 类型 | 必须返回 | 描述 |
---|---|---|---|
status | Number | 是 | 认证结果,1-通过 2-不通过 3-查无结果 0-待定 |
reasonType | Number | 否 | 原因详情: 2-认证不一致 3-该手机号查询无记录 4-认证信息有误 5-号码状态异常(空号、停机等) 6-解析手机号运营商失败 7-其他出错 以下返回为详版专属 20-手机号已实名,姓名正确,但证件号错误 21-手机号已实名,证件号正确,但姓名错误 22-手机号已实名,但证件号和姓名均非该手机号绑定信息 |
logId | String | 是 | 本次请求日志id,可以根据该标识在控制台查询结果 |
isPayed | Number | 是 | 本次请求是否收费标识,1代表收费,0代表不收费 |
mobileType | String | 是 | 运营商类型:1-移动,2-联通,3- 电信,9,-未知 |
响应体示例
{
"errCode": 0,
"errMsg": "",
"data": {
"status": 1,
"reasonType": 1,
"logId": "9f9def8638c74506b3f5ef17f893c8b9",
"isPayed": 1,
"mobileType": "3",
"note": ""
}
}
uni-cloud-verify-co
,云对象名字可自己修改,这里以 uni-cloud-verify-co
为例。在弹窗的窗口中选择云对象,输入名称 uni-cloud-verify-co
package.json
文件,完整替换内容如下{
"name": "uni-cloud-verify-co",
"dependencies": {},
"extensions": {
"uni-cloud-verify": {}
},
"cloudfunction-config": {
"concurrency": 1,
"memorySize": 512,
"path": "/http/uni-cloud-verify-co",
"timeout": 60,
"triggers": [],
"runtime": "Nodejs18"
}
}
index.obj.js
文件,完整替换内容如下注意:请修改变量apiKey的值为你的通讯密钥
如果你自己有更好的安全验证逻辑,可自行修改 _before
内的逻辑
const apiKey = "xxxxxx"; // 请替换为你的通讯密钥
const uniVerifyManager = uniCloud.getUniVerifyManager({
provider: "univerify",
});
class MyError extends Error {
constructor(err) {
super();
this.err = err;
}
}
module.exports = {
_before: function() {
const params = this.getParams();
const data = params[0] || params;
// 验证通讯密钥
if (data.key !== apiKey) {
throw new MyError({
code: -1,
msg: "非法请求"
});
}
},
_after: function(error, result) {
if (error) {
if (error.err) {
return error.err;
}
throw error;
}
return result
},
// 手机号三要素认证(简版)
async mobile3EleVerify(data) {
let {
realName,
idCard,
mobile,
} = data;
const res = await uniVerifyManager.mobile3EleVerify({
realName,
idCard,
mobile
});
return res;
},
// 手机号三要素认证(详版)
async mobile3EleVerifyPro(data) {
let {
realName,
idCard,
mobile,
} = data;
const res = await uniVerifyManager.mobile3EleVerifyPro({
realName,
idCard,
mobile
});
return res;
},
// 手机号二要素认证
async mobile2EleVerify(data) {
let {
realName,
idCard,
mobile,
} = data;
const res = await uniVerifyManager.mobile2EleVerify({
realName,
idCard,
mobile
});
return res;
}
}
uni-cloud-verify-co
假设复制的路径是:https://xxxxxxxxxx.next.bspapp.com/http/uni-cloud-verify-co
则
请求手机号三要素认证(简版)的完整http请求地址为:
GET请求
https://xxxxxxxxxx.next.bspapp.com/http/uni-cloud-verify-co/mobile3EleVerify?realName=姓名&idCard=身份证&mobile=手机号&key=通讯密钥
请求手机号三要素认证(详版)的完整http请求地址为:
GET请求
https://xxxxxxxxxx.next.bspapp.com/http/uni-cloud-verify-co/mobile3EleVerifyPro?realName=姓名&idCard=身份证&mobile=手机号&key=通讯密钥
请求手机号二要素认证的完整http请求地址为:
GET请求
https://xxxxxxxxxx.next.bspapp.com/http/uni-cloud-verify-co/mobile2EleVerify?realName=姓名&mobile=手机号&key=通讯密钥