1、短信发送开发指南地址:https://help.aliyun.com/document_detail/55491.html?spm=a2c4g.11186623.6.568.l5zTwH

2、SDK和Demo下载地址:https://help.aliyun.com/document_detail/55359.html?spm=a2c4g.11186623.4.3.IvyHwo

3、总结前两步:开发前先到开发指南按步骤去做一系列前期工作,即:

(1)到阿里云去申请一个accessKey Id和Access Key Secret

(2)在短信服务平台申请短信签名和短信模板

(3)下载对应的Python的SDK和Demo

4、开发工作:

(1)将下载到的SDK和DEMO解压后放到项目相应的地方

(2)运行cmd,cd到上诉的解压文件夹中运行 python setup.py install命令

(3)安装依赖到虚拟环境:

  ① pip install aliyuncli

  ② pip install -Iv aliyun-python-sdk-cms==5.0.0

  ③ aliyuncli configure(配置默认信息):   

Aliyun Access Key ID [None]: 你申请的Access Key Id
Aliyun Access Key Secret [None]: 你申请的Access Key Id 对应的 Access Key Secret
Default Region Id [None]: cn-hangzhou (区域,就填阿里云默认给的就好)
Default output format [None]: json (默认输出格式,按自己的需求来,我选的是json)

  ④ 跑完上面的步骤可能已经有下面两个依赖的,不过跑跑也无妨:

    pip install aliyun-python-sdk-core

    pip install aliyun-python-sdk-cms

  ⑤ pip install top

5、贴一下接口代码,其实和给的demo几乎一样

import sysfrom ali_sms.aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
from ali_sms.aliyunsdkdysmsapi.request.v20170525 import QuerySendDetailsRequest
from aliyunsdkcore.client import AcsClientfrom aliyunsdkcore.profile import region_providerfrom aliyunsdkcore.http import method_type as MT
from aliyunsdkcore.http import format_type as FT """
短信业务接口 吾延 2018-07-13
"""# 设置AccessKeyId和AccessKeySecret
acs_client = AcsClient('你申请的access key id', '你申请的access key id 对应的secret','cn-hangzhou')
region_provider.add_endpoint('Dysmsapi', 'cn-hangzhou', 'dysmsapi.aliyuncs.com') def send_sms(business_id, phone_numbers, sign_name, template_code, template_param=None):
""""
发送短信
请求参数:{
business_id: 阿里云流水号,可用于查询
phone_numbers: 要发送的电话号码列表,多个或一个
sign_name: 短信签名名称
template_code: 短信模板编码
template_param: 模板参数(验证码 或 其他在阿里云申请时设置的短信模板参数)
}
返回:{
{
Message: 信息,
RequestId: 请求id,
Code: 短信发送状态回执码(查询链接:https://help.aliyun.com/document_detail/55323.html?spm=a2c4g.11174283.4.9.fkf6vH )
}
"""
try:
reload(sys)
sys.setdefaultencoding('utf8')
except Exception as err:
log.exception(err)
return False
sms_request = SendSmsRequest.SendSmsRequest()
sms_request.set_TemplateCode(template_code)
if template_param is not None:
sms_request.set_TemplateParam(template_param)
sms_request.set_OutId(business_id)
sms_request.set_SignName(sign_name)
sms_request.set_PhoneNumbers(phone_numbers)
sms_response = acs_client.do_action_with_exception(sms_request)
# print sms_response
return sms_response def query_send_detail(biz_id, phone_number, page_size, current_page, send_date):
""""
短信详情查询
请求参数{
biz_id: 流水号
phone_number: 手机号码
page_size: 每页大小
current_page: 当前页
send_date : 发送日期(30天内的记录查询)
}
返回参数{
TotalCount
Message
RequestId
SmsSendDetailDTOs
Code
}
"""
try:
reload(sys)
sys.setdefaultencoding('utf8')
except Exception as err:
log.exception(err)
return False
query_request = QuerySendDetailsRequest.QuerySendDetailsRequest()
query_request.set_PhoneNumber(phone_number)
query_request.set_BizId(biz_id)
query_request.set_SendDate(send_date)
query_request.set_CurrentPage(current_page)
query_request.set_PageSize(page_size)
# 数据提交方式
# queryRequest.set_method(MT.POST)
# 数据提交格式
# queryRequest.set_accept_format(FT.JSON)
# 返回json数据
query_response = acs_client.do_action_with_exception(query_request)
# TODO 业务处理
# print 'query_response'+query_response
return query_response

6、调用接口,也直接贴代码了(我的项目返回的都是json数据,看个人开发需要)
  

  

 # 调用生成验证码方法
business_id = uuid.uuid1() # 产生阿里的流水号,必填,用于短信详情的查询
verify = str_utils.random_number_verify(5) 生成随机验证码函数
params = "{\"code\": " + verify + "}"
res = eval(sms_utils.send_sms(business_id, mobile_no, '你申请的签名','你申请的模板', params))
if res['Code'] == 'OK':
create_time = time.time()
info = {'verify': verify, 'phone': mobile_no, 'create_time': create_time}
set_session(request=request, s_key=sms_verify, s_info=info) # set_session是自己写的一个方法,根据项目需求保存到session中,当然建个表来保存就更好了
return Response({'code': constants.RESULT_SUCCESS, 'message': u'生成成功,请查收!'})
elif res['Code'] == 'isv.BUSINESS_LIMIT_CONTROL':
return Response({'code': constants.RESULT_FAIL, 'message': u'次数受限!'})
else:
return Response({'code': constants.RESULT_FAIL, 'message': u'该号码受限,换个号码试试!'})

至此,配置一个阿里大于短信获取验证码的接口就全部完成了

Python2-Django配置阿里大于的短信验证码接口的更多相关文章

  1. php 阿里云短信服务及阿里大鱼实现短信验证码的发送

    一:使用阿里云的短信服务 ① 申请短信签名 ②申请短信模板 ③创建Access Key,获取AccessKeyId 与 AccessKeySecret.(为了安全起见,这里建议使用子用户的Access ...

  2. PHP阿里大于发短信教程

    PHP阿里大于发短信教程 1 先去控制台 https://www.alidayu.com/center/user/account?spm=a3142.7791109.1999204004.5.ZtBQ ...

  3. php短信验证码接口接入流程及代码示例

    对于绝大部分企业来说,所使用的短信验证码接口都是第三方短信服务商所提供,目前市场上短信服务商有很多,在此向大家推荐一家动力思维乐信,运营13年,值得信赖! 就拿动力思维乐信短信验证码接口为例,详细介绍 ...

  4. 通过sails和阿里大于实现短信验证

    通过sails与阿里大于来实现注册短信验证码的发送,逻辑图如下 1.用户在客户端发送手机号给服务器,服务器接收到手机号,生成对应时间戳,随机四位数验证码 2.服务器将电话号码和验证码告诉阿里大于服务器 ...

  5. Node 接入阿里云实现短信验证码

    本文介绍在案例云开通短信服务的流程以及在Node项目中使用的方法. 一.开通阿里云短信服务 登陆阿里云,然后进入 https://dysms.console.aliyun.com/dysms.htm  ...

  6. 潭州课堂25班:Ph201805201 django 项目 第十三课 短信验证码后台的实现 (课堂笔记)

    d 发送短信验证码之前,后台要得到三个参数 : 1,用户手机吗,, 2,用户输入的图片验证文本, 3,前台的 uuid , 在60秒内是否有发送短信的记录 只有用户输入的手机号,文本信息与 uudi ...

  7. NetCore 阿里大于发送短信

    使用阿里大于API发送短信,但阿里没有提供NetCore 的API,自己看了下源码重写了发短信这个部分 public class MessageSender { private readonly st ...

  8. Delphi - Delphi7 调用阿里大于实现短信消息验证

    阿里大于是阿里通信旗下产品,融合了三大运营商的通信能力,提供包括短信.语音.流量直充.私密专线.店铺手机号等个性化服务.每条四分五,价钱还算公道,经老农测试,响应速度非常快,基本上是秒到.官方文档提供 ...

  9. 阿里大于发送短信(java)

    一.短信签名设置 1.短信签名是什么? 签名是在短信内容开始或者末尾跟的品牌或者应用名称,设置签名有一下几个好处:增加品牌的曝光度,增强用户的记忆让用户能更清楚的知道正在使用的应用. 2.签名可不可以 ...

随机推荐

  1. DbCommand :执行超时已过期。完成操作之前已超时或服务器未响应。

    问题:“Timeout 时间已到.在操作完成之前超时时间已过或服务器未响应.”的解决方法 在一个链接数据库的时候,老是出现超时的错误:执行超时已过期.完成操作之前已超时或服务器未响应. 就是给这个链接 ...

  2. DateTime.Now

    // 2008年4月24日 System.DateTime.Now.ToString( " D " );// 2008-4-24 System.DateTime.Now.ToStr ...

  3. 算法笔记codeup-Contest100000568

    A #include <stdio.h> int main() { ; ; while(a) { sum=sum+a; a--; } printf("%d",sum); ...

  4. 设置Linux主机SSH访问服务

    检查是否开启22端口访问权限. 检查是否安装openssh-server 开启ssh服务:sudo service sshd start 使用ssh客户端进行访问:ssh userName@IP

  5. Nginx作为web静态资源服务器——防盗链

    ​ 基于http_refer防盗链配置模块 Syntax:valid_referers none | blocked | server_names | string ...; Default:—— C ...

  6. python scoket

    一.简介 scoket(套结字)在python就是模块 二.分类 基于文件型(不用) 基于网络型 名字:AF_INET AF_INET6 三.scoket应用 1.基于tcp 长连接:基于tcp的Se ...

  7. [bzoj4443] [loj#2006] [洛谷P4251] [Scoi2015]小凸玩矩阵

    Description 小凸和小方是好朋友,小方给小凸一个 \(N \times M\)( \(N \leq M\) )的矩阵 \(A\) ,要求小秃从其中选出 \(N\) 个数,其中任意两个数字不能 ...

  8. centos7的新特性

    1.修改主机名方式改变 centos6在/etc/ centos7使用命令hostnamectl set-hostname 主机名2.修改时间方式改变3.查看IP地址ifconfig不再支持改用ip4 ...

  9. C# winform 弹框提示内存不足

    看了下面一片博文解决的 Winform 内存不足Winform,我给PictureBox 赋值 picBox_One.BackgroundImage = Image.FromFile("图片 ...

  10. 异想家Win10常用的软件推荐

    本文总结一下自己日常使用Win10中涉及到的好用小软件,那些装机必备的软件在这里就不一一列出了.我重点想推荐一些自己觉得好用,符合自己偏好,但又不是每个人都知道的小工具: Rolan:一款类似于Win ...