国际验证码接口供应商:迷你版手机发送短信验证码!
2020-08-25 00:00:00
来源:www.jzyyun.com
点击:3039
喜欢:0
国际验证码接口供应商:迷你版手机发送短信验证码! 如何给手机发送验证码?国际验证码接口供应商:迷你版手机发送短信验证码!一起来学习一下吧。 (1)申请签名: (2)申请模版: (3)发送短信示例: (4)手机收到验证码: (5)查看帮助文档: (6)获取密钥 (7)Java代码实现:
1)导jar包 2)代码: ```java package test; import java.util.Random; import java.util.Scanner; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest; import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse; import com.aliyuncs.http.MethodType; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.IClientProfile; public class TestPhone_1{ //注:有备注无需修改的位置请勿改动。 public static SendSmsResponse getPhoneMessage(String phoneNumbers,String signName,String templateCode,String templateParam)throws Exception{ //设置超时时间-可自行调整 System.setProperty("sun.net.client.defaultConnectTimeout","10000"); System.setProperty("sun.net.client.defaultReadTimeout","10000"); //初始化ascClient需要的几个参数 final String product="Dysmsapi";//短信API产品名称(短信产品名固定,无需修改) final String domain="dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改) //替换成你的AK final String accessKeyId="LTAI0DtxkzU0PmX4";//你的accessKeyId,参考本文档步骤2 final String accessKeySecret="DloLhsiv0X293YkVHEcIq3dy2TZtqT";//你的accessKeySecret,参考本文档步骤2 //初始化ascClient,暂时不支持多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(); //使用post提交 request.setMethod(MethodType.POST); //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为国际区号+号码,如“85200000000” request.setPhoneNumbers(phoneNumbers); //必填:短信签名-可在短信控制台中找到 request.setSignName(signName); //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版 request.setTemplateCode(templateCode); //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为 //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含rn的情况在JSON中需要表示成rn,否则会导致JSON在服务端解析失败 //"{"name":"Tom","code":"888888"}" request.setTemplateParam(templateParam); //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段) //request.setSmsUpExtendCode("90997"); //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者 request.setOutId("yourOutId"); //请求失败这里会抛ClientException异常 SendSmsResponse sendSmsResponse=acsClient.getAcsResponse(request); if(sendSmsResponse.getCode()!=null&&sendSmsResponse.getCode().equals("OK")){ //请求成功 } return sendSmsResponse; } //生成随机数 public static String getRandom(int n){ char[]code="0123456789".toCharArray(); StringBuilder sb=new StringBuilder(); for(int i=0;i<n;i++){ sb.append(code[new Random().nextInt(code.length)]); } return sb.toString(); } //传递相应的参数 public static String TestSendMessage(String phoneNumbers){ //1.生成随机数,导入commons-lang3-3.7.jar jar包 //String random=RandomStringUtils.random(6,"1234567890"); //2.使用随机数方法生成随机数参数:生成的位数 String random=getRandom(6); //用作用域暂时存储 System.out.println("随机数"+random); String name="aaa"; String code="{"name":""+name+"","code":""+random+""}"; SendSmsResponse sendSmsResponse=null; String message=null; try{ //参数:手机号,短信签名,短信模版Id,发送内容中的随机数 sendSmsResponse=getPhoneMessage(phoneNumbers,"月之明连之心","SMS_171112706",code); String messageCode=sendSmsResponse.getCode(); if(messageCode.equals("OK")){ message="发送成功"; }else{ if(messageCode.equals("isv.INVALID_PARAMETERS")){ message="参数异常"; } if(messageCode.equals("isv.AMOUNT_NOT_ENOUGH")){ message="余额不足"; } } }catch(Exception e){ e.printStackTrace(); } return message; } //测试 public static void main(String[]args){ Scanner scanner=new Scanner(System.in); String toTmobile=scanner.next(); //用于调试 //String message=TestSendMessage("13933863662"); String message=TestSendMessage(toTmobile); System.out.println(message); } } ```
上一篇:短信群发前为什要记得测试一下?
下一篇:106短信群发平台:10690短信群发渠道能过滤空号吗?