首页 > 其他分享 >以网站、app应用实名认证为背景,详细介绍一下实名认证的必要性以及认证示例

以网站、app应用实名认证为背景,详细介绍一下实名认证的必要性以及认证示例

时间:2024-12-17 15:28:17浏览次数:6  
标签:requestParams Set err 示例 fmt 认证 实名

以网站、app应用实名认证为背景,详细介绍一下实名认证的必要性以及认证示例

在当今数字化时代,实名认证越来越成为网站、App应用必不可少的一部分。
本文将以聚合数据的相关接口数据:三网手机实名认证、身份证实名认证、活体视频认证、活体人脸实名认证H5版、银行卡三四要素,详细的说明实名认证的方法
条条大路通罗马,相信总有一种实名认证的方法是适合您的

一、实名认证的必要性:

  • 提高用户安全性和可靠性
    • 实名认证可以有效防止账号被盗用、冒充等行为,保护用户隐私和财产安全。
    • 用户身份真实可验证,有助于建立信任关系,提高用户对产品/服务的信心。
  • 规范平台秩序
    • 实名认证可以阻止恶意注册、发布违法违规内容等行为,维护平台秩序。
    • 有助于追查责任主体,增强平台的社会责任感和公信力。
  • 满足监管要求
    • 很多行业和领域都有实名制的监管政策和法规要求,如金融、电信等。
    • 平台必须落实实名认证机制,否则可能面临处罚或关停风险。

二、实名认证的常见方法(综合难度、可靠,5⭐️为例):

  • 1、 三网手机实名认证 3⭐️
    • 要求用户使用本人真实的手机号码进行注册并对身份证进行核验。
    • 通过手机号码与身份证信息的绑定,验证用户身份的真实性。
  • 2、 身份证实名认证 3⭐️
    • 让用户提供身份证号码并上传身份证照片进行核验。
    • 通过身份证信息的直接验证,确认用户身份。
  • 3、 活体视频认证 4⭐️
    • 要求用户进行实时视频自拍,传入视频和身份信息。
    • 先判断视频中是否为真人,再判断视频中的人与公安权威库的证件照是否属于同一个人。
    • 结合视觉识别和权威数据核验,提高认证的可靠性。
  • 4、 活体人脸实名认证H5版 5⭐️
    • 通过真人活体检测和人脸比对等生物识别技术,配合权威数据源验证,可快速校验自然人的真实身份。
    • 可快速、准确地校验自然人的真实身份。
    • 生物识别技术更加智能和安全可靠。
  • 5、 三方认证:银行卡三元素检测银行卡四元素检测 4⭐️
    • 银行卡三要素(姓名、身份证号码、银行卡号)信息是否一致
    • 银行卡四元素检测(姓名、手机号码、身份证号码、银行卡号)信息是否一致

三、各种实名认证方法示例详解:

下面将通过简单易懂的代码方式,详细分析和说明以上5种实名认证方法的使用
首先我们需要获取接口调用的秘钥:注册并登录聚合,在用户中心-》我的数据-》我的接口里面可以看到已申请的接口appkey
以下下代码默认已有appkey,并以go语言为例,其他语言可到相关文档查看(支持语言:curl、python、php、node、go、objectc、java、c#)

  • 所有请求header 都是:Content-Type application/x-www-form-urlencoded

1、三网手机实名认证 3⭐️

该方式需要用户的:姓名、身份证、手机号(这里要注意,手机号必须是该身份证办理的,如果只是使用者,是不同不过的)
三要素比对一致即可完成实名认证

必填参数:
参数类型描述
keystring在个人中心->我的数据,接口名称上方查看
realnamestring姓名
idcardstring身份证号码
mobilestring手机号码
示例:
package main

import (
   "encoding/json"
   "fmt"
   "net/http"
   "net/url"
)

func main() {
   // 基本参数配置
   apiUrl := "https://v.juhe.cn/telecom/query"
   apiKey := "您申请的调用APIkey"
   // 接口请求入参配置
   requestParams := url.Values{}
   requestParams.Set("key", apiKey)
   requestParams.Set("realname", "李聚合")
   requestParams.Set("idcard", "370121xxxxxxxx1040")
   requestParams.Set("mobile", "18988888888")


   // 发起接口网络请求
   resp, err := http.Get(apiUrl + "?" + requestParams.Encode())
   if err != nil {
       fmt.Println("网络请求异常:", err)
       return
   }
   defer resp.Body.Close()

   var responseResult map[string]interface{}
   err = json.NewDecoder(resp.Body).Decode(&responseResult)
   if err != nil {
       fmt.Println("解析响应结果异常:", err)
       return
   }
   fmt.Println(responseResult)
}
结果
{
   "reason":"成功",
   "result":{
   	"realname":"****",
   	"mobile":"************",
   	"idcard":"********************",
   	"res":1, // 1:三要素核验一致,2:三要素核验不一致
   	"resmsg":"三要素身份验证一致",
   },
   "error_code":0
}

2、身份证实名认证 3⭐️

核验身份证二要素(姓名和身份证号码)信息是否一致。
简单粗暴:根据res判断是否通过:1:匹配 , 2:不匹配

必填参数:
参数类型描述
keystring在个人中心->我的数据,接口名称上方查看
realnamestring姓名
idcardstring身份证号码
示例
package main

import (
  "encoding/json"
  "fmt"
  "net/http"
  "net/url"
)

func main() {
  // 基本参数配置
  apiUrl := "http://op.juhe.cn/idcard/query"
  apiKey := "您申请的调用APIkey"
  // 接口请求入参配置
  requestParams := url.Values{}
  requestParams.Set("key", apiKey)
  requestParams.Set("idcard", "370121xxxxxxxx1040")
  requestParams.Set("realname", "李聚合")
  requestParams.Set("orderid", "")

  // 发起接口网络请求
  resp, err := http.Get(apiUrl + "?" + requestParams.Encode())
  if err != nil {
      fmt.Println("网络请求异常:", err)
      return
  }
  defer resp.Body.Close()

  var responseResult map[string]interface{}
  err = json.NewDecoder(resp.Body).Decode(&responseResult)
  if err != nil {
      fmt.Println("解析响应结果异常:", err)
      return
  }
  fmt.Println(responseResult)
}

结果
{
    "reason": "成功",
    "result": {
        "realname": "***",
        "idcard": "******************",
        "orderid":"J103202010151450419556",
        "res": 1 // 1:匹配 , 2:不匹配
    },
    "error_code": 0
}

3、 活体视频认证 4⭐️

传入视频和身份信息,先判断视频中是否为真人,判断为真人后,再判断该视频中的人与公安权威库的证件照是否属于同一个人
自行根据res相似度进行适合的取值,判断是否认证通过

必填参数:
参数必填类型描述
keystring在个人中心->我的数据,接口名称上方查看
realnamestring姓名
idcardstring身份证号码
videoBase64二选一string用于活体检测的视频,视频的BASE64值;BASE64编码后的大小不超过8M,支持mp4、avi、flv格式。
videoUrl二选一string用于活体检测的视频Url 地址。视频下载后经Base64编码不超过 8M,视频下载耗时不超过4S,支持mp4、avi、flv格式。视频的 videoUrl、videoBase64必须提供一个,如果都提供,只使用 videoBase64。
示例
package main

import (
    "encoding/json"
    "fmt"
    "net/http"
    "net/url"
    "strings"
)

func main() {
    // 基本参数配置
    apiUrl := "http://apis.juhe.cn/antiFaceId/query"
    apiKey := "您申请的调用APIkey"

    // 接口请求入参配置
    requestParams := url.Values{}
    requestParams.Set("key", apiKey)
    requestParams.Set("idcard", "370121xxxxxxxx1040")
    requestParams.Set("realname", "李聚合")
    requestParams.Set("videoBase64", "")
    requestParams.Set("videoUrl", "")

    // 发起接口网络请求
    resp, err := http.Post(apiUrl, "application/x-www-form-urlencoded", strings.NewReader(requestParams.Encode()))
    if err != nil {
        fmt.Println("网络请求异常:", err)
        return
    }
    defer resp.Body.Close()

    var responseResult map[string]interface{}
    err = json.NewDecoder(resp.Body).Decode(&responseResult)
    if err != nil {
        fmt.Println("解析响应结果异常:", err)
        return
    }
    fmt.Println(responseResult)
}
结果
{
    "reason": "成功",
    "result":{
        "res":{
            "score": 100
            // 属score,相似度,取值范围 [0.00, 100.00]。推荐相似度大于等于70时可判断为同一人,可根据具体场景自行调整阈值(阈值70的误通过率为千分之一,阈值80的误通过率是万分之一)
        },
        "orderid": "J675202203211119151305"
    },
    "error_code": 0
}

4、 活体人脸实名认证H5版 5⭐️

通过真人检测和人脸比对等生物识别技术,配合权威数据源验证,可快速校验自然人的真实身份。
该方法需要向获取实人认证链接,进行活体认证扫描
回调认证扫码任务订单号,用户通过订单号,查下认证结果
同样也可以传递一个异步通知地址,等待结果推送

1、获取认证地址

https://apis.juhe.cn/faceid/query

参数:
参数必填类型描述
keystring在个人中心->我的数据,接口名称上方查看
certNamestring姓名
certNostring身份证号码
orderIdstring自定义的8-32位字母数字组合标识。
modelstring活体检测的类型。
returnUrlstring您的业务页面回跳的目标地址URL。
notifyUrlstring认证结果的回调通知地址URL。仅当认证完成(包含认证通过和认证未通过)时才会触发回调,若认证中放弃、异常中断或未进行认证均不会通知。建议您收到回调通知时,若有需要可通过查询接口获取认证详情信息。
deviceTypestring取值WEB或者H5 (默认H5)。

形迹判断是一种动作活体的检测方式,按规则移动鼻尖完成指定动作。形迹判断通过增加随机性,提升了安全能力。

  • model选择
    • 1 默认,眨眼动作活体检测。
    • 2 多动作活体检测,眨眼+任意摇头检测(顺序随机)。
    • 3 多动作活体检测,眨眼+形迹判断(顺序随机)。
    • 4 多动作活体检测,眨眼+炫彩活体双重检测。
    • 5 多动作活体检测,远近动作+眨眼动作检测。
示例
package main

import (
    "encoding/json"
    "fmt"
    "net/http"
    "net/url"
    "strings"
)

func main() {
    // 基本参数配置
    apiUrl := "https://apis.juhe.cn/faceid/query"
    apiKey := "您申请的调用APIkey"

    // 接口请求入参配置
    requestParams := url.Values{}
    requestParams.Set("key", apiKey)
    requestParams.Set("certName", "姓名")
    requestParams.Set("certNo", "370121xxxxxxxx1040")
    requestParams.Set("orderId", "OD2024052012121212")
    requestParams.Set("model", "1")
    requestParams.Set("returnUrl", "https://local.example.cn/return")
    requestParams.Set("notifyUrl", "")
    requestParams.Set("deviceType", "")

    // 发起接口网络请求
    resp, err := http.Post(apiUrl, "application/x-www-form-urlencoded", strings.NewReader(requestParams.Encode()))
    if err != nil {
        fmt.Println("网络请求异常:", err)
        return
    }
    defer resp.Body.Close()

    var responseResult map[string]interface{}
    err = json.NewDecoder(resp.Body).Decode(&responseResult)
    if err != nil {
        fmt.Println("解析响应结果异常:", err)
        return
    }
    fmt.Println(responseResult)
}
结果
{
  "reason":"SUCCESS",
  "result":{
    "jh_order_id":"JH79320240513145425BLEnR",
    "verify_url":"http://m.alyms.cn/F4.bTPyEV" // 重定向打开该认证地址,完成认证
  },
  "error_code":0
}
2、认证结果查询

https://apis.juhe.cn/faceid/search

参数:
参数必填类型描述
keystring在个人中心->我的数据,接口名称上方查看
jhOrderIdstring聚合订单号。即发起认证请求接口返回的jh_order_id字段。
示例
package main

import (
    "encoding/json"
    "fmt"
    "net/http"
    "net/url"
    "strings"
)

func main() {
    // 基本参数配置
    apiUrl := "https://apis.juhe.cn/faceid/search"
    apiKey := "您申请的调用APIkey"

    // 接口请求入参配置
    requestParams := url.Values{}
    requestParams.Set("key", apiKey)
    requestParams.Set("jhOrderId", "JH79320240517095231mUzn9")

    // 发起接口网络请求
    resp, err := http.Post(apiUrl, "application/x-www-form-urlencoded", strings.NewReader(requestParams.Encode()))
    if err != nil {
        fmt.Println("网络请求异常:", err)
        return
    }
    defer resp.Body.Close()

    var responseResult map[string]interface{}
    err = json.NewDecoder(resp.Body).Decode(&responseResult)
    if err != nil {
        fmt.Println("解析响应结果异常:", err)
        return
    }
    fmt.Println(responseResult)
}
结果
{
  "reason": "SUCCESS",
  "result": {
    "passed": "T", // 认证通过
    "message": "身份证号与姓名匹配,且比对成功",
    "jh_order_id": "JH79320240517095231mUzn9",
    "detail": {
      "live_passed": "T",
      "live_code": "200",
      "live_message": "活体检测通过",
      "live_score": "91.11730",
      "certify_passed": "T",
      "certify_code": "200",
      "certify_message": "身份证号与姓名匹配,且比对成功",
      "certify_res": "1",
      "certify_score": "87",
      "img": "" // 实人认证图片
    }
  },
  "error_code": 0
}

5、 三方认证:银行卡三元素检测银行卡四元素检测 4⭐️

这里就只介绍四元素检测,其他一样
可以根据res判断实名认证是否通过

必填参数:
参数类型描述
keystring在个人中心->我的数据,接口名称上方查看
realnamestring姓名
idcardstring身份证号码
bankcardstring银行卡卡号
mobilestring手机号码
示例
package main

import (
   "encoding/json"
   "fmt"
   "net/http"
   "net/url"
)

func main() {
   // 基本参数配置
   apiUrl := "http://v.juhe.cn/verifybankcard4/query"
   apiKey := "您申请的调用APIkey"
   // 接口请求入参配置
   requestParams := url.Values{}
   requestParams.Set("key", apiKey)
   requestParams.Set("realname", "李聚合")
   requestParams.Set("idcard", "370121xxxxxxxx1040")
   requestParams.Set("bankcard", "6321xxxxxxxx432")
   requestParams.Set("mobile", "18988888888")
   requestParams.Set("bankinfo", "")

   // 发起接口网络请求
   resp, err := http.Get(apiUrl + "?" + requestParams.Encode())
   if err != nil {
       fmt.Println("网络请求异常:", err)
       return
   }
   defer resp.Body.Close()

   var responseResult map[string]interface{}
   err = json.NewDecoder(resp.Body).Decode(&responseResult)
   if err != nil {
       fmt.Println("解析响应结果异常:", err)
       return
   }
   fmt.Println(responseResult)
}
结果
{
   "reason": "成功",
   "result": {
       "jobid": "JH2131191113105116991630Np", // 本次查询流水号
       "realname": "****", // 姓名
       "bankcard": "************", // 银行卡卡号
       "idcard": "************", // 身份证号码
       "mobile": "***********", // 预留手机号码
       "res": "2", // 验证结果,1:匹配 2:不匹配
       "message": "认证信息不匹配" // 描述
   },
   "error_code": 0
}

总结

总的来说,这5种实名认证方法(三网手机实名认证、身份证实名认证、活体视频认证、活体人脸实名认证H5版、银行卡三四要素)各有特点,从简单的手机号码和身份证验证,到更加智能和可靠的生物识别和三方认证,满足不同场景和需求。平台可根据自身情况选择合适的认证方式,以确保用户身份的真实性和安全性。
可以根据具体的场景和需求选择不同的认证方式

标签:requestParams,Set,err,示例,fmt,认证,实名
From: https://blog.csdn.net/nbplus_007/article/details/144536591

相关文章

  • 信息技术应用创新软件适配认证规则
    1.适用范围本规则适用于信息技术应用创新应用软件适配认证。2.认证模式认证模式:产品检测+获证后监督认证的基本环节包括:a.认证的申请b.产品检测c.认证结果评价与批准d.获证后的监督e.复审3.认证申请3.1认证单元划分......
  • Python 闭包:常见用例和示例
     在Python中,闭包通常是定义在另一个函数内部的函数。这个内部函数抓取在其作用域外定义的对象,并将它们与内部函数对象本身关联起来。由此产生的组合称为闭包。 闭包是函数式编程语言的一个常见特性。在Python中,闭包非常有用,因为它支持创建基于函数的装饰器,而装饰器是一种......
  • Python 回调函数示例
    回调是一段作为参数传递给其他代码的代码,通常以函数或方法的形式。当其他代码需要运行回调时,就会这样做。回调函数是一个作为参数传递给其他函数的函数,并在方便的时候被“回调”。它通常用于在模拟或处理任务结束时执行操作,例如在事件驱动编程中。回调函数是Python编程语言的基......
  • 【Java】LDAP AD域登录认证
    项目遇到需要进行AD域认证的情况,先是使用了LdapTemplate,结果认证不了,换了下面的方式认证成功了认证的时候,需要注意账号后面加上AD域服务器后缀!加上后缀!加上后缀! publicbooleanldapAuth(Stringusername,Stringpassword){booleanisLogin=false;//log.i......
  • 2.mysql授权认证
    权限系统介绍●什么是权限系统权限系统是授予来自某个主机的某个用户可以查询、插入、修改、删除等数据库操作的权限不能明确的指定拒接某个用户的连接权限控制(授权与收回)的执行语句包括createuser,grant,revoke授权后的权限都会存放在MySQL的内部数据库中(数据库名叫做mys......
  • 网易小蜜蜂新平台快速涨粉和个人认证
    在当今的社交媒体时代,个人影响力和粉丝数量对于内容创作者来说至关重要。网易小蜜蜂作为一个新兴的内容平台,为创作者提供了一个展示才华和增加粉丝的机会。本文将探讨如何在网易小蜜蜂平台上通过合法合规的方式快速增加粉丝,并介绍个人认证的重要性。网易小蜜蜂平台简介网易......
  • C# 实现验证码图片识别示例
    首先,你需要安装Emgu.CV库,这可以通过NuGet包管理器来安装。在VisualStudio中安装:打开NuGet包管理器,搜索Emgu.CV,然后点击安装。安装完成后,我们可以开始编写代码。csharpusingSystem;usingSystem.Drawing;usingEmgu.CV;usingEmgu.CV.Structure;usingEmgu.CV......
  • Mybatis Plus 常规用法及其示例
    目录导包pom.xml配置文件修改application.yml启动类修改Mapper层修改注解@TableName("表名")@TableId("数据库中主键字段名","主键策略")@TableField("数据库中字段名")内置方法前置说明条件构造器插入intinsert(Tentity)删除intdeleteById(Serializableid)intd......
  • GESP2024年12月认证C++四级( 第一部分选择题(6-10))
    ......
  • GESP2024年12月认证C++四级( 第一部分选择题(1-5))
    ......