基于网易云短信接口开发
开发流程:
- 生成效验
- 发送验证码
- 短信验证
一、生成CheckSum校验
import java.security.MessageDigest;
/*** 网易云短信工具类* @author dayun.wang**/
public class CheckSumBuilder {// 计算并获取CheckSumpublic static String getCheckSum(String appSecret, String nonce, String curTime) {return encode("lol", appSecret + nonce + curTime);}// 计算并获取md5值public static String getMD5(String requestBody) {return encode(“md5”, requestBody);}private static String encode(String algorithm, String value) {if (value == null) {return null;}try {MessageDigest messageDigest= MessageDigest.getInstance(algorithm);messageDigest.update(value.getBytes());return getFormattedText(messageDigest.digest());} catch (Exception e) {throw new RuntimeException(e);}}private static String getFormattedText(byte[] bytes) {int len = bytes.length;StringBuilder buf = new StringBuilder(len * 2);for (int j = 0; j < len; j++) {buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);buf.append(HEX_DIGITS[bytes[j] & 0x0f]);}return buf.toString();}private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5','6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
}
二、发送验证码
1、 参数说明
2、发送验证码
APPSECRET:密钥
NONCE:随机数(自己定义)
WYYURlSEND:请求action(https://api.netease.im/sms/sendcode.action)
/**
* 发送验证码模板* * @author dayun.wang* @version 1.0.0* @param str* 发送验证码* @return true or false* @throws IOException * */public static Integer getSendcode(String mobile) throws IOException{String curTime = String.valueOf((new Date()).getTime() / 1000L); // 当前UTC时间戳String checkSum = CheckSumBuilder.getCheckSum(Constant.APPSECRET, Constant.NONCE, curTime);String params = "templateid="+Constant.WYYTEMPLATID+"&mobile="+mobile;URL realUrl;URLConnection conn;PrintWriter out = null;BufferedReader in = null;String result = "";// 返回码 200、301、315、403、404、413、414、500String code="500";try {realUrl = new URL(Constant.WYYURlSEND);//
https://api.netease.im/sms/sendcode.actionconn = realUrl.openConnection();// 请求头文件conn.setRequestProperty("AppKey", Constant.APPKEY);conn.setRequestProperty("CurTime", curTime);conn.setRequestProperty("CheckSum", checkSum);conn.setRequestProperty("Nonce", Constant.NONCE);conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");// 设置post请求conn.setDoOutput(true);conn.setDoInput(true);// 获取对象的输出流out = new PrintWriter(conn.getOutputStream());// 发送参数out.print(params);out.flush();// 读取响应信息in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null){result += line;}// 获取发送状态code = JSON.parseObject(result).getString("code").toString();} catch (MalformedURLException e) {e.printStackTrace();}finally{out.close();in.close();}return Integer.valueOf(code);}
三、短信验证
1、参数说明:
WYYURlVERIFY:请求action(https://api.netease.im/sms/verifycode.action)
/*** 校验验证码模板* * @author dayun.wang* @version 1.0.0* @param str* 校验验证码* @return true or false* @throws IOException * */public static Integer getVerifyCode(String mobile,String value) throws IOException{String curTime = String.valueOf((new Date()).getTime() / 1000L); // 当前UTC时间戳String checkSum = CheckSumBuilder.getCheckSum(Constant.APPSECRET, Constant.NONCE, curTime);String params = "mobile="+mobile+"&code="+value;URL realUrl;URLConnection conn;PrintWriter out = null;BufferedReader in = null;String result = "";String code="500";try {realUrl = new URL(Constant.WYYURlVERIFY);conn = realUrl.openConnection();conn.setRequestProperty("AppKey", Constant.APPKEY);conn.setRequestProperty("CurTime", curTime);conn.setRequestProperty("CheckSum", checkSum);conn.setRequestProperty("Nonce", Constant.NONCE);conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");conn.setDoOutput(true);conn.setDoInput(true);out = new PrintWriter(conn.getOutputStream());out.print(params);out.flush();in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null){result += line;}code = JSON.parseObject(result).getString("code").toString();} catch (MalformedURLException e) {e.printStackTrace();}finally{out.close();in.close();}return Integer.valueOf(code);}
四、自定义短信模板
1、参数说明
WYYSENDTEMPLATE:请求action(https://api.netease.im/sms/sendtemplate.action)
/*** 自定义模板* * @author dayun.wang* @version 1.0.0* @param str* 重置密码* @return true or false* @throws IOException * */public static Integer getResetPassword(String mobile,String password) throws IOException{String curTime = String.valueOf((new Date()).getTime() / 1000L); // 当前UTC时间戳String checkSum = CheckSumBuilder.getCheckSum(Constant.APPSECRET, Constant.NONCE, curTime);String params = "templateid="+Constant.WYYSENDTEMPLATECODE+"&mobiles=[\""+mobile+"\"]¶ms=[\""+password+"\"]";URL realUrl;URLConnection conn;PrintWriter out = null;BufferedReader in = null;String result = "";// 返回码 200、301、315、403、404、413、414、500String code="500";try {realUrl = new URL(Constant.WYYSENDTEMPLATE);conn = realUrl.openConnection();conn.setRequestProperty("AppKey", Constant.APPKEY);conn.setRequestProperty("CurTime", curTime);conn.setRequestProperty("CheckSum", checkSum);conn.setRequestProperty("Nonce", Constant.NONCE);conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");conn.setDoOutput(true);conn.setDoInput(true);out = new PrintWriter(conn.getOutputStream());out.print(params);out.flush();in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null){result += line;}code = JSON.parseObject(result).getString("code").toString();} catch (MalformedURLException e) {e.printStackTrace();}finally{out.close();in.close();}return Integer.valueOf(code);}
五、最后
20条试用短信省着点用,20条试用短信省着点用,20条试用短信省着点用,重要的事说三遍!要买得40000条开始,madan。。。
基于网易云短信接口开发相关推荐
- java实现网易云短信接口
httpclient-4.3.6.jar和httpcore-4.3.3.jar jar包 首先去网易云注册账号得到分配的app key 和 App Secret 开通短信有20条试用.使用的是htt ...
- 网易云短信接口 ---- 短信验证码
这两天写了一个关于网易云的短信验证码功能,然后jar包以及代码:链接:https://pan.baidu.com/s/1H8FUgfkqNJFNeebByCh_jw 提取码:yvy3 复制这段内容后打 ...
- 网易云短信接口调入(java)
1 需要两个jar包 httpclient-4.3.6.jar和httpcore-4.3.3.jar jar包 2.验证码生成工具 public class CheckSumBuilder {//计 ...
- 阿里云(短信验证)。。。。网易云短信验证
首先是根据登陆阿里云官网 点击控制台-使用支付宝登录-搜索短信服务-在右上角找到短信操作服务指南-按照里面的步骤进行就可以了 网易云短信验证 语言验证 登录网易网址: https://netease. ...
- java发送网易云短信验证码(语音和短信)
java发送网易云短信验证码(语音和短信) 1,先拷贝架包 commons-codec commons-codec 1.10 org.apache.httpcomponents httpclient ...
- 云之讯短信接口开发小白教程
首先,不了解云之讯的可以不用了解.我们只需要知道自己的目的,我的目的是短信的发送,所以我直接去看云之讯开发文档(毕竟是开发人员). 首先我做的第一步是:申请一个账户,给自己的手机发送一条短信,先体验功 ...
- 网易云 短信验证码+验证+tp5
废话不说 直接上代码 PHP部分 1.ServerAPI.php(这是网易云短信文档里面的代码,直接复制存在本地然后改了一些 仅供参考) <?php /*** Created by PhpSto ...
- php短信接口开发(http协议)
做为公司的一名技术,每天会碰到很多新手朋友咨询有关短信接口开发的问题,下面就以php语言为例为大家介绍下短信接口如何开发. 一.接口说明1.提交方式与编码http请求都应以POST形式提交,编码为UT ...
- python短信接口_基于 python 的短信接口调用代码示例模板
阅信短信验证码平台最近会从新梳理基于不同语言的短信接口调用代码示例,是为了迎合市面上现在流行的各个语言代码实现,也是为了能够更好的服务满足客户的不同层次的需求. 下面的代码是基于 python 的短信 ...
最新文章
- 腾讯云携手SENSORO,为城市安全保驾护航
- BCH为什么要把自身打造成多元化平台
- html如何呈现在显示器,lcd显示器采用什么显示方式
- 淡入淡出效果 || 高亮显示案例
- aop拦截mybatis执行sql_Java进阶架构之开源框架面试题系列:Spring+SpringMVC+MyBatis
- Oracle Redefine table online will clone and exchange source and intermedia table - 3
- React开发(200):三种截取字符串的方法
- 【BZOJ4198】荷马史诗,贪心之k叉哈夫曼树
- pulsar学习笔记1:helloworld
- Django项目实践3 - Django模型(view-数据库)
- springboot+easyui+jpa实现动态权限角色的后台管理系统(二)
- CAD迷你看图常见使用问题与解答
- svn 合并分支 (svn操作手册)
- 一个不错的Redis实战学习视频教程
- pentaho8.1安装
- 未授权访问漏洞测试方法及修复方案
- html中onfocus作用,HTML onfocus用法及代码示例
- !function(){}() 什么意思
- DZZOffice(大桌子)企业文档协同平台教程系列(三)——ONLYOFFICE社区版部署、配置
- Error 1962: No operating system found.
热门文章
- 美团校招-2023.3.18.10点-第四题-商店-困难
- 毛星云opencv之8.4.4查找和绘制图像轮廓矩
- 根据 MOB/vSphere APIs 获取 ESXi 服务器证书
- android悬浮球代码,Android 仿360悬浮球与加速球
- android 卡片放大变详情页,ZoomHeader 神交互!饿了么 imageView 放大变为详情页 @codeKK Android开源站...
- 支付宝沙箱支付demo详细教程(idea版)
- 什么叫五口POE交换机 五口POE交换机使用方法
- 计算机音乐好想你曲谱,好想你简谱
- pdb python 命令_使用pdb进行Python调试(下)
- 安卓多线程编程系列3:使用handler和message下载网络图片