文档章节

微信小程序 - 使用阿里云发送短信

糊说八道
 糊说八道
发布于 2018/05/05 18:56
字数 1139
阅读 226
收藏 1

开发中使用微信小程序发送短信验证码,总结下使用的流程。

这个是首次接入完整的流程图,按照流程来基本可以实现接入。

短信流程图

介绍下签名和模板:

刚开始看这几个字时候会想这是啥东西?要仔细看官网介绍,就是在短信内容里附加个性化签名,再发送给被叫手机客户 ,例如短信内容这个xx科技就是你设置个性化签名。那么后面的内容就是你创建的短信内容模板,可以创建多个签名和模板,看自己选择用哪一个都写,可以根据你写代码入参时候确定使用。

其它:

前面几很简单,注意创建短信签名时候,注意填写签名名称按照规定来,不能随意填写审核可能不通过。其他的按照接入指引来很简单,自行脑补。

报错:

自己测试的时候会遇到,原因自己反复用自己手机号发短信#-_-导致

报错is-business-limit-control-message

该错误码是指触发短信默认流控限制;

短信验证码 :使用同一个签名,对同一个手机号码发送短信验证码,支持1条/分钟,5条/小时,10条/天。一个手机号码通过阿里云短信服务平台只能收到40条/天。(如您是在发送验证码时提示业务限流,建议根据以上业务调整接口调用时间)

短信通知: 使用同一个签名和同一个短信模板ID,对同一个手机号码发送短信通知,支持50条/日(如您是在发短信通知时提示业务限流,建议根据以上业务调整接口调用时间)

按照以上的限制来发送,即不会出现触发流控的情况。

下面举个栗子Demo(以我做的验证码为例)

public class SmsDemo {

    //产品名称:云通信短信API产品,开发者无需替换
    static final String product = "Dysmsapi";
    //产品域名,开发者无需替换
    static final String domain = "dysmsapi.aliyuncs.com";

    //此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
    static final String accessKeyId = "yourAccessKeyId";
    static final String accessKeySecret = "yourAccessKeySecret";

    public static SendSmsResponse sendSms() throws ClientException {

        //可自助调整超时时间
        System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
        System.setProperty("sun.net.client.defaultReadTimeout", "10000");

        //初始化acsClient,暂不支持region化
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
        DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
        IAcsClient acsClient = new DefaultAcsClient(profile);

        //组装请求对象-具体描述见控制台-文档部分内容
        SendSmsRequest request = new SendSmsRequest();
        //必填:待发送手机号
        request.setPhoneNumbers("15000000000");//号码不固定根据业务来
        //必填:短信签名-可在短信控制台中找到
        request.setSignName("云通信");
        //必填:短信模板-可在短信控制台中找到
        request.setTemplateCode("SMS_1000000");

        //可选(根据需求确定,我做的发验证码所以要写):模板中的变量替换JSON串,
        //如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
        String codeId=RandomStringUtils.randomNumeric(6);//生成6位随机数
        request.setTemplateParam("{\"code\":\"" + codeId + "\"}");


        //hint 此处可能会抛出异常,注意catch
        SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);

        return sendSmsResponse;
    }

别忘了加上项目依赖的jar包

   
    <dependency>  
      <groupId>commons-lang</groupId>  
      <artifactId>commons-lang</artifactId>  
      <version>2.6</version>  
      <scope>provided</scope>  
    </dependency>

    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>aliyun-java-sdk-core</artifactId>
      <version>3.2.8</version> 注:如提示报错,先升级基础包版,无法解决可联系技术支持
    </dependency>

    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
      <version>1.1.0</version>
    </dependency>

如果对自己的验证码表示不满,还可以试试这几个,或者自己找下其他方法也行。

//产生6位长度的随机字符串
RandomStringUtils.random(6);

//使用指定的字符生成6位长度的随机字符串
RandomStringUtils.random(6, new char[]{'a','b','c','d','e','f'});

//生成指定长度的字母和数字的随机组合字符串
RandomStringUtils.randomAlphanumeric(6);

//生成随机数字字符串
RandomStringUtils.randomNumeric(6); 

 

下面执行main函数即可体验短信产品API功能了,是不是很简单,赶快试下吧。

 

水平有限,若有问题请留言交流。

互相学习,共同进步 :) 转载请注明出处谢谢。

 

© 著作权归作者所有

糊说八道
粉丝 8
博文 100
码字总数 46908
作品 0
其它
程序员
私信 提问
走路带疯/wx_yq_mall

微信小程序商城【wxyqmall】 微信小程序商城,微信小程序微店,长期维护版本,欢迎大家踊跃提交贡献代码; 参与开发 更多项目请关注 https://gitee.com/TengWeiYun。 小程序开发 [微信:hq5...

走路带疯
2018/08/31
0
0
JPress v1.0.5 优化发布,修复细节问题

JPress 一个类似 WordPress 的产品,使用Java开发。 特点 模板 模板安装 模板卸载 在线编辑(删除模板、修改模板、上传模板) 完善的开发文档 极致的开发体验 用户 独立登录和注册入口 独立的...

理工男海哥
02/01
229
0
JPress v1.0.1 发布,修复细节问题,提高用户体验

JPress 一个类似 WordPress 的产品,使用Java开发。 特点 模板 模板安装 模板卸载 在线编辑(删除模板、修改模板、上传模板) 完善的开发文档 极致的开发体验 用户 独立登录和注册入口 独立的...

理工男海哥
2018/12/21
763
2
JPress v1.0.4 发布,修复 XSS 安全问题,建议升级

JPress 一个类似 WordPress 的产品,使用Java开发。 特点 模板 模板安装 模板卸载 在线编辑(删除模板、修改模板、上传模板) 完善的开发文档 极致的开发体验 用户 独立登录和注册入口 独立的...

理工男海哥
01/21
930
0
JPress 1.0 正式版发布,历时2年,感谢大家

JPress 一个类似 WordPress 的产品,使用Java开发。 特点 模板 模板安装 模板卸载 在线编辑(删除模板、修改模板、上传模板) 完善的开发文档 极致的开发体验 用户 独立登录和注册入口 独立的...

理工男海哥
2018/12/13
1K
27

没有更多内容

加载失败,请刷新页面

加载更多

centos7 linuxdeployqt qt5.13.1 打包程序

原文链接:https://www.cnblogs.com/linuxAndMcu/p/11016322.html 一、简介 linuxdeployqt 是Linux下的qt打包工具,可以将应用程序使用的资源(如库,图形和插件)复制到二进制运行文件所在的...

shzwork
22分钟前
4
0
IDEA 配置Springboot项目热部署

实现的方式概述 注意以下的热部署方式在IDEA是默认没有打开自动编译的,手动编译需要快捷键(Ctrl+Shift+F9),自动编译的修改配置如下:(注意刷新不要太快,会有1-2秒延迟) File-Settings-C...

小强的进阶之路
33分钟前
6
0
免费数据分析工具:secsoso

前段时间思考了理想数据分析平台,之后我们根据这个思路开发了spl语言并提供了一个数据分析平台,这个平台主要用在搜索ES,数据库索引中的数据。但后来发现对文件的事后处理也是个非常重要的...

赛克蓝德
35分钟前
5
0
暗黑2不能正常启动?带你轻松使用WIN10运行游戏

暗黑破坏神2这款游戏由于年代比较久远,所以设置启动这方面与现在的大部分游戏有很大差距,由于当初完美运行暗黑2是当年使用最多的XP系统,在使用现在大多数玩家使用的WIN7到WIN10系统常会出...

太空堡垒185
39分钟前
6
0
maven项目对象模型(二)

1.4.4.传递性依赖 一个传递性依赖就是一个依赖的依赖。如果project-a依赖于project-b,而后者接着依赖于project-c,那么project-c就是被认为是project-a的传递性依赖。如果project-c依赖于p...

万建宁
39分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部