短信验证码、身份证实名、手机三要素实名三步走
满满的都是干货分享,获取对应的AppKey后代码可运行;python3环境
众所周知,系统非法登录、登录密码撞库、数据泄露、用户信息不真实等情况是信息系统和网站业务面临的最大问题,当然提升系统完全的方式有很多种,下面介绍一下立竿见影的几种方式
获取短信验证码AppKey
获取身份证实名认证AppKey
获取三网手机实名认证AppKey
一、短信验证码
适用于各类网站、APP等短信验证码、通知短信等。
无论是注册、登录、敏感数据查看、敏感操作时加入短信验证码校验,都能有效的提升系统安全
下面介绍一下如何接入 短信验证码
1、接入&交互流程
- 首先需要申请接口、获取验证码接口AppKey
- 创建短信验证码模板,获取模板Id
- 客户端调用验证码发送接口
- 服务端发送并存储验证码到数据库
- 客户端提交验证码校验
2、接口请求示例
当用户获取AppKey后就可以进一步测试:获取验证码接口AppKey
废话不多说,直接上示例代码(pythos3 , 更多开发语言示例,看这里):(前提是获取AppKey、模板ID)
python版本
import random
import requests
import json
appKey='短信验证码接口AppKey'
tplId='验证码短信模板'
class ApiRequest(object):
def __init__(self,appKey,tplId):
self.appKey = appKey
self.tplId = tplId
def sendSms(self,mobile):
code = random.randint(100000,999999)
"""
这里验证码生成后先存储到本地数据库
"""
# 调用接口发送验证码
resp = self.sendSmsApi(mobile,code)
"""
这里根据验证码发送情况做一些业务处理
"""
return resp
# 验证码发送接口
def sendSmsApi(self,mobile,code):
params={'key':'key','fid':0}
headers ={"Content-Type": "application/x-www-form-urlencoded"}
params ={
"mobile": mobile,
"tpl_id": self.tplId,
"tpl_value": "#code#={}".format(code),
"key": self.appKey,
}
print(params)
resp = requests.post("http://v.juhe.cn/sms/send",params,headers=headers)
resp_json = json.loads(resp.text)
print(resp_json)
## {'reason': '操作成功', 'result': {'sid': '594832C6A33A5CC7', 'fee': 1, 'count': 1}, 'error_code': 0}
return resp_json
mobile = '18913556768'
pet = ApiRequest(appKey,tplId)
rest = pet.sendSms(mobile)
print(rest)
接口返回示例:
/****失败示例**/
{
"reason": "错误的短信模板ID,请通过后台确认!!!",
"result": [],
"error_code": 205402
}
/****成功示例**/
{
"reason": "短信发送成功",
"result": {
"count": 1, /*发送数量*/
"fee": 1, /*扣除条数*/
"sid": "23d6bc4913614919a823271d820662af" /*短信ID*/
},
"error_code": 0 /*发送成功*/
}
二、用户安全
用户信息是否真实有效,用户非法使用平台信息或发布非法言论等等违法行为,是否能追溯到用户本人
加强用户安全管理=》身份实名
目前简单身份实名有两种:
- 1、身份证实名认证:校验姓名和身份号是否真实有效
- 2、三网手机实名认证:根据办理手机号的信息,核验身份证号和姓名是否相符
两者区别:三网手机实名认证相较于身份证实名认证安全和可靠系数高
下面是两种方式的示例代码python:
1、身份证实名认证
通过传递姓名+身份证号码,校验信息是否一致
适用于电商、游戏、直播、金融等需要用户实名认证的场景
申请身份证实名认证AppKey
import random
import requests
import json
appKey=''
class ApiRequest(object):
def __init__(self,appKey):
self.appKey = appKey
# 身份证实名
def verify(self,idcard,name):
params={'key':'key','fid':0}
headers ={"Content-Type": "application/x-www-form-urlencoded"}
params ={
"idcard": mobile,
"realname": name,
"key": self.appKey,
}
print(params)
resp = requests.post("http://op.juhe.cn/idcard/query",params,headers=headers)
resp_json = json.loads(resp.text)
print(resp_json)
## {'reason': '成功', 'result': {'res': 1, 'realname': '姓名', 'idcard': '身份号'}, 'error_code': 0}
return resp_json
mobile = '身份证号'
name = '姓名'
pet = ApiRequest(appKey)
rest = pet.verify(mobile,name)
print(rest)
接口返回示例:
{
"reason": "成功",
"result": {
"realname": "***",/*真实姓名*/
"idcard": "******************",/*身份证号码*/
"orderid":"J103202010151450419556",/*流水号*/
"res": 1 /*1:匹配 2:不匹配*/
},
"error_code": 0
}
2、手机三网实名认证
通过传递姓名+身份证号码+手机号,校验信息是否一致
适用于电商、游戏、直播、金融等需要用户实名认证的场景
申请并获取三网手机实名认证AppKey文章来源:https://www.toymoban.com/news/detail-781046.html
import random
import requests
import json
appKey=''
class ApiRequest(object):
def __init__(self,appKey):
self.appKey = appKey
# 身份证实名
def verify(self,idcard,name,mobile):
params={'key':'key','fid':0}
headers ={"Content-Type": "application/x-www-form-urlencoded"}
params ={
"idcard": idcard,
"realname": name,
"mobile":mobile,
"key": self.appKey,
}
print(params)
resp = requests.post("http://v.juhe.cn/telecom/query",params,headers=headers)
resp_json = json.loads(resp.text)
print(resp_json)
# {'reason': '成功', 'result': {'realname': '姓名', 'mobile': '手机号', 'idcard': '身份证号', 'res': 1, 'resmsg': '三要素身份验证一致'}, 'error_code': 0}
return resp_json
idcard = '身份证号'
name = '姓名'
mobile ='手机号'
pet = ApiRequest(appKey)
rest = pet.verify(idcard,name,mobile)
print(rest)
接口返回参数:文章来源地址https://www.toymoban.com/news/detail-781046.html
{
"reason": "查询成功",
"result": {
"realname": "***",
"mobile": "***********",
"idcard": "******************",
"res": 2,/*匹配结果:1匹配 2不匹配*/
"resmsg": "三要素身份验证不一致,"/*说明,res为1时返回三要素身份验证一致,res为2时返回三要素身份验证不一致*/
"types": "移动"/*手机运营商,输入参数type为1时返回*/
"orderid":"J201712251904163782Ay",/*聚合订单号,输入参数showid为1时返回*/
"province":"广东省",/*归属地省*/
"city" : "惠州市",/**归属地城市*/
"rescode":"24",/*输入detail为1时返回匹配详情码(简版情况下输入1的时候,固定返回24),
11:匹配,21:姓名不匹配,22:身份证不匹配,
23:姓名身份证均不匹配,24:不匹配,具体要素不匹配未知*/
},
"error_code": 0
}
到了这里,关于短信验证码、身份证实名、手机三要素实名三步走,手把手教你API接口调用,示例可使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!