阿里通信[短信验证码]上线实战流程分享
2、登录阿里通信
1)登录链接:https://www.aliyun.com/product/sms
2)可以使用淘宝账号登录
3)登录成功后,进入到这个界面:https://dysms.console.aliyun.com/dysms.htm#/overview
3、阿里通信-短信验证码使用
1)获取 AccessKey 和 ACCESS_KEY_SECRET:
2)新建签名及模板
签名及模板审核通过后即可以使用了。
4、python 发送短信验证码
1)下载阿里短信服务下的SDK(python):https://help.aliyun.com/document_detail/112147.html?spm=a2c4g.11186623.6.631.673f5f30ZSc6vT
在项目的虚拟环境中,执行下述命令,安装阿里云SDK核心库:
python 2.x 安装:
pip install aliyun-python-sdk-core
python 3.x 安装:
pip install aliyun-python-sdk-core-v3
2)使用 OpenAPI Explorer 来生成相关API的Demo并应用在我们自己的项目中
使用 python SDK 的示例指导链接:https://help.aliyun.com/document_detail/53090.html
短信API demo 介绍:
QuerySendDetails:调用QuerySendDetails接口查看短信发送记录和发送状态 , 文档链接:https://help.aliyun.com/document_detail/102352.html
SendSms:发送短信 , 文档链接:https://help.aliyun.com/document_detail/101414.html
SendBatchSms:批量发送短信, 文档链接:https://help.aliyun.com/document_detail/102364.html
3)SendSms 相关参数介绍
请求参数:
返回参数:
返回结果 json 格式:
{
"Message":"OK", "RequestId":"2184201F-BFB3-446B-B1F2-C746B7BF0657", "BizId":"197703245997295588^0", "Code":"OK"
}
错误码 error code:https://error-center.aliyun.com/status/product/Dysmsapi
4)SendSms API 生成
进入OpenAPI Explorer :https://api.aliyun.com/?spm=a2c4g.11186623.2.15.506959adEnxtsy#/?product=Dysmsapi&api=QuerySendDetails
使用:
API 调试生成 python 代码:
!/usr/bin/env python
coding=utf-8
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
client = AcsClient('', '', 'default')
request = CommonRequest()
request.set_accept_format('json')
request.set_domain('dysmsapi.aliyuncs.com')
request.set_method('POST')
request.set_protocol_type('https') # https | http
request.set_version('2017-05-25')
request.set_action_name('SendSms')
request.add_query_param('PhoneNumbers', "13*")
request.add_query_param('SignName', "小饭桌网站")
request.add_query_param('TemplateCode', "SMS_16")
request.add_query_param('TemplateParam', "{'code':'123456'}")
response = client.do_action(request)
python2: print(response)
print(str(response, encoding = 'utf-8'))
我们只需要复制上述代码,稍作改动,将code变成我们需要的验证码就可以了。
具体使用:
新建 random_code.py 文件,代码如下:
import random
def generate_code():
"""生成四位数的验证码""" seeds = "1234567890" random_str = [] for i in range(4): random_str.append(random.choice(seeds)) return "".join(random_str)
新建 aliyunsdk.py 文件,用于发送短信(可直接拿去使用),代码如下:
import json
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
from utils.random_code import generate_code
def aliyun_send_sms():
"""阿里云发送短信""" client = AcsClient('******', '***********', 'default') # <accessKeyId> 、<accessSecret> request = CommonRequest() request.set_accept_format('json') request.set_domain('dysmsapi.aliyuncs.com') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_version('2017-05-25') request.set_action_name('SendSms') code = generate_code() # 生成四位数的验证码 request.add_query_param('PhoneNumbers', "13*******") request.add_query_param('SignName', "小饭桌网站") request.add_query_param('TemplateCode', "SMS_********") request.add_query_param('TemplateParam', json.dumps({'code': code})) # 以json 格式传递code参数 response = client.do_action(request) # 发送短信 response = str(response, encoding='utf-8') # 返回的response 为 <class 'bytes'> 类型,将其转换成str字符串类型 response = json.loads(response) # 再通过json.loads,将str类型的 response 转换成dict 格式 # print(response) # response:{'Message': 'OK', 'RequestId': 'F07A40C3-539C-453B-BE52-4B60FF8DF58E', 'BizId': '431121158876223912^0', 'Code': 'OK'} # print(response['Code']) # 获取 Code 值 return code, response['Code']
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
JDK11 | 第七篇 : ZGC 垃圾收集器
文章首发于公众号《程序员果果》 地址 : https://mp.weixin.qq.com/s/gfdml-SfvhFdMXlAu-a61w 一、简介 Java 11包含一个全新的垃圾收集器--ZGC,它由Oracle开发,承诺在数TB的堆上具有非常低的暂停时间。 在本文中,我们将介绍开发新GC的动机,技术概述以及由ZGC开启的一些可能性。 那么为什么需要新GC呢?毕竟Java 10已经有四种发布多年的垃圾收集器,并且几乎都是无限可调的。 换个角度看,G1是2006年时引入Hotspot VM的。当时最大的AWS实例有1 vCPU和1.7GB内存,而今天AWS很乐意租给你一个x1e.32xlarge实例,该类型实例有128个vCPU和3,904GB内存。 ZGC的设计目标是:支持TB级内存容量,暂停时间低(<10ms),对整个程序吞吐量的影响小于15%。 将来还可以扩展实现机制,以支持不少令人兴奋的功能,例如多层堆(即热对象置于DRAM和冷对象置于NVMe闪存),或压缩堆。 二、GC术语 为了理解ZGC如何匹配现有收集器,以及如何实现新GC,我们需要先了解一些术语。最基本的垃圾收...
- 下一篇
PageAdmin、WordPress与dedeCMS网站模板制作总结
PageAdmin、WordPress与dedeCMS作为国内三大cms建站系统,经常在功能性,操作性和负载等方面进行对比,每个cms的侧重点都不一样,所以没有绝对的哪个好,哪个不好,有的只是是否你的网站类型,或者是否适合你的使用习惯,这里只对三个cms的模板制作进行一个简单的对比,希望能给新手朋友一个借鉴,下面以调用文章列表页数据为例,讲解三个cms的模板制作区别。 1、PageAdminpageadmin的模板制作采用mvc自带的razor语法,易用性和灵活性都很强大,下面演示pageadmin最常用的列表页调用的模板写法。 @foreach (var item in Html.InfoDataList(new { ColumnId =5 ,ShowNumber=20,OrderBy="id desc"})) { var url = Html.InfoDataUrl((int)item.ColumnId,(int)item.Id); <li> <a href="@url">@item.Title</a> <span>@item.The...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7安装Docker,走上虚拟化容器引擎之路