调用阿里云API实现运营商实名认证
- 1、作者介绍
- 2、理论知识介绍
-
- [2.1 阿里智能云介绍](#2.1 阿里智能云介绍)
- [2.2 运营商实名认证](#2.2 运营商实名认证)
- [2.3 请求方法](#2.3 请求方法)
- 3、调用阿里智能云实现运营商实名认证实例
-
- [3.1 阿里智能云](#3.1 阿里智能云)
- [3.2 实验代码](#3.2 实验代码)
- [3.3 问题分析](#3.3 问题分析)
- 4、实验结果
1、作者介绍
杨旭,男,西安工程大学电子信息学院,2024级研究生
研究方向:机器人抓取
电子邮件:[email protected]
乔幸荣,女,西安工程大学电子信息学院,2024级研究生,张宏伟人工智能课题组
研究方向:模式识别与智能系统
电子邮件:[email protected]
2、理论知识介绍
2.1 阿里智能云介绍
阿里云创立于2009年, 总部设在杭州,为阿里巴巴集团的数字技术与智能骨干业务,向全球客户提供全方位云服务,包括自有服务器、弹性计算、存储、网络安全、数据库和大数据等服务。
2.2 运营商实名认证
通过比对姓名、身份证号、手机号的一致性,核验手机用户身份信息是否一致。支持电信、联通、移动。
2.3 请求方法
HTTP 方法:POST。HTTP是超文本传输协议(Hyper Text Transfer Protocol)的缩写,其用于从服务器传输超文本到本地浏览器的传送协议,本实验采取POST请求方法。
3、调用阿里智能云实现运营商实名认证实例
3.1 阿里智能云
(1):账号注册
(2):寻找所需的API
(3)申请开通服务
(4)复制Appcode
(5)发起调试
3.2 实验代码
将复制的Appcode填入代码中,同时填入需要实名认证的个人信息
python
1.import urllib, urllib3, sys, uuid
2.import ssl
3.
4.
5.host = 'https://zpc.market.alicloudapi.com'
6.path = '/efficient/cellphone/post'
7.method = 'POST'
8.appcode = '你自己的AppCode'
9.querys = ''
10.bodys = {}
11.url = host + path
12.
13.http = urllib3.PoolManager()
14.headers = {
15. 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
16. 'Authorization': 'APPCODE ' + appcode
17.}
18.bodys['mobile'] = '''''13331xxxxx'''
19.bodys['idCard'] = '''''6101211985xxxxxx'''
20.bodys['realName'] = '''''张三'''
21.post_data = urllib.parse.urlencode(bodys).encode('utf-8')
22.response = http.request('POST', url, body=post_data, headers=headers)
23.content = response.data.decode('utf-8')
24.if (content):
25. print(content)
3.3 问题分析
阿里智能云给出的代码中,身份信息等敏感内容容易泄露,且不利于客户使用,可以适当修改代码,使用户在终端输入个人信息防止泄露。
python
1.import urllib.parse
2.import urllib3
3.
4.# API 配置
5.appcode = "8980518ab97747eb841631d03941f131"
6.host = "https://zpc.market.alicloudapi.com"
7.path = "/efficient/cellphone/post"
8.url = host + path
9.
10.# 请求头配置
11.headers = {
12. "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
13. "Authorization": f"APPCODE {appcode}"
14.}
15.
16.# 交互式获取敏感信息
17.mobile = input("请输入手机号:").strip()
18.id_card = input("请输入身份证号:").strip()
19.real_name = input("请输入姓名:").strip()
20.
21.# 构建请求
22.post_data = urllib.parse.urlencode({
23. "mobile": mobile,
24. "idCard": id_card,
25. "realName": real_name
26.}).encode("utf-8")
27.
28.# 发送请求
29.try:
30. http = urllib3.PoolManager()
31. response = http.request("POST", url, body=post_data, headers=headers)
32. print("响应结果:\n" + response.data.decode("utf-8"))
33.except Exception as e:
34. print(f"API 请求失败: {str(e)}")
35.finally:
36. # 清理内存中的敏感数据
37. mobile = id_card = real_name = None
del post_data, mobile, id_card, real_name
4、实验结果
可以看出用户已完成实名认证