网易云短信验证
来源:互联网 发布:互力微信淘客软件 编辑:程序博客网 时间:2024/05/01 17:50
网易云短信验证
首先创建5个java类:
需要的jar包:
package com.ht.duanxin;/** * @author Administrator * * 获取验证码的手机号码 */public class SendMsg { public static void main(String[] args) { String mobileNumber ="130******1";//获取验证码的手机号码 try { String str = MobileMessageSend.sendMsg(mobileNumber); if("success".equals(str)){ System.out.println("发送成功!"); }else{ System.out.println("发送失败!"); } } catch (Exception e) { e.printStackTrace(); } }}
package com.ht.duanxin;import java.io.IOException;import java.util.ArrayList;import java.util.Date;import java.util.List;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;import com.alibaba.fastjson.JSON;import com.ht.duanxin.CheckSumBuilder;public class MobileMessageSend { private static final String SERVER_URL="https://api.netease.im/sms/sendcode.action";//发送验证码的请求路径URL private static final String APP_KEY="*********";//账号 private static final String APP_SECRET="*********";//密钥 private static final String NONCE="123456";//随机数 private static final String MOULD_ID="3056134";//模板ID public static String sendMsg(String phone) throws IOException { CloseableHttpClient httpclient = HttpClients.createDefault(); HttpPost post = new HttpPost(SERVER_URL); String curTime=String.valueOf((new Date().getTime()/1000L)); String checkSum=CheckSumBuilder.getCheckSum(APP_SECRET,NONCE,curTime); //设置请求的header post.addHeader("AppKey",APP_KEY); post.addHeader("Nonce",NONCE); post.addHeader("CurTime",curTime); post.addHeader("CheckSum",checkSum); post.addHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8"); //设置请求参数 List<NameValuePair> nameValuePairs =new ArrayList<>(); nameValuePairs.add(new BasicNameValuePair("mobile",phone)); nameValuePairs.add(new BasicNameValuePair("templateid",MOULD_ID)); post.setEntity(new UrlEncodedFormEntity(nameValuePairs,"utf-8")); //执行请求 HttpResponse response=httpclient.execute(post); String responseEntity= EntityUtils.toString(response.getEntity(),"utf-8"); //判断是否发送成功,发送成功返回true String code= JSON.parseObject(responseEntity).getString("code"); if (code.equals("200")){ return "success"; } return "error"; }}
package com.ht.duanxin;/** * @author Administrator * * 发送手机验证码 * */public class CheckMsg { public static void main(String[] args) { String mobileNumber = "130******1";//手机号码 String code = "9034";//验证码 try { String str = MobileMessageCheck.checkMsg(mobileNumber, code); if("success".equals(str)){ System.out.println("验证成功!"); }else{ System.out.println("验证失败!"); } } catch (Exception e) { e.printStackTrace(); } }}
package com.ht.duanxin;import java.io.IOException;import java.util.ArrayList;import java.util.Date;import java.util.List;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;import com.alibaba.fastjson.JSON;import com.ht.duanxin.CheckSumBuilder;public class MobileMessageCheck { private static final String SERVER_URL="https://api.netease.im/sms/verifycode.action";//校验验证码的请求路径URL private static final String APP_KEY="*****************";//账号 private static final String APP_SECRET="********";//密钥 private static final String NONCE="123456";//随机数 public static String checkMsg(String phone,String sum) throws IOException { CloseableHttpClient httpclient = HttpClients.createDefault(); HttpPost post = new HttpPost(SERVER_URL); String curTime=String.valueOf((new Date().getTime()/1000L)); String checkSum=CheckSumBuilder.getCheckSum(APP_SECRET,NONCE,curTime); //设置请求的header post.addHeader("AppKey",APP_KEY); post.addHeader("Nonce",NONCE); post.addHeader("CurTime",curTime); post.addHeader("CheckSum",checkSum); post.addHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8"); //设置请求参数 List<NameValuePair> nameValuePairs =new ArrayList<>(); nameValuePairs.add(new BasicNameValuePair("mobile",phone)); nameValuePairs.add(new BasicNameValuePair("code",sum)); post.setEntity(new UrlEncodedFormEntity(nameValuePairs,"utf-8")); //执行请求 HttpResponse response=httpclient.execute(post); String responseEntity= EntityUtils.toString(response.getEntity(),"utf-8"); //判断是否发送成功,发送成功返回true String code= JSON.parseObject(responseEntity).getString("code"); System.out.println(code); if (code.equals("200")){ return "success"; } return "error"; }}
package com.ht.duanxin;import java.security.MessageDigest;public class CheckSumBuilder { //计算并获取checkSum public static String getCheckSum(String appSecret,String nonce,String curTime){ return encode("SHA",appSecret+nonce+curTime); } 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 sb=new StringBuilder(len*2); for(int $i=0;$i<len;$i++){ sb.append(HEX_DIGITS[(bytes[$i]>>4)&0x0f]); sb.append(HEX_DIGITS[bytes[$i]&0x0f]); } return sb.toString(); } private static final char[] HEX_DIGITS={'0','1','2','3','4','5','6', '7','8','9','a','b','c','d','e','f'};}
好东西一起分享才对滴,希望可以帮助大家,谢谢!
1 0
- 网易云短信验证
- 网易云信短信验证
- 网易云短信接口 ---- 短信验证码
- 网易云信-网易验证码短信,网易通知类短信的使用
- 网易云信短信验证码验证php实现
- 使用网易云通信发送验证码,通知类型短信
- Java使用【网易云信】短信接口,给手机用户发送并校验验证码
- PHP使用网易短信验证码使用详解
- 阿里云 短信验证
- 阿里云短信验证
- 云片短信验证
- c#网易云信短信接口实例
- 网易云信 短信接口Swift 调用
- 发送邮件&短信(网易云信)
- nodejs+短信服务+网易云信
- java实现网易云短信接口
- PB9网易云信发短信
- 短信验证
- ROS机器人Diego 1#制作总结
- JS--oop高级部分
- js兼容实现图片的预加载
- mysql left join,right join,inner join用法分析
- AVPlayer的基本使用
- 网易云短信验证
- canvas-jCanvaScript
- 面向对象高级2-继承
- 调用系统设备的代码
- CSS3形变——transform与transform-origin画时钟
- js运动框架
- angulary4
- angular 5
- angular 6