发送短信需要填写以下4个参数:签名、模板code、秘钥id、秘钥内容
阿里云短信使用步骤:
《1》点击进入阿里云免费试用 , 然后登陆账号
《2》 如图选择短信0元试用 (已经领取过的,直接走第三步即可。)
《3》点击进入阿里云短信官网 , 登陆状态下点击免费开通 (已开通的文字会替换为控制台 , 点击效果一样)
《4》选择国内消息
《5》创建短信签名
《6》在模板管理中创建短信模板
《7》创建子账户秘钥
鼠标移至右上角账户名称 选择accesskeys
选择开始使用子用户AccessKey
输入登陆名称和显示名称, 选择编程访问
复制得到的accessKeyId和 AccessKeySecret 留待后续使用
用户登录名称 kuaidi@1211017112125226.onaliyun.com
AccessKey ID LTAI5tRK8vFDnEijSRxNyDEs
AccessKey Secret ZIIW2Gt71FU8l48JyCIe4gzXmMYESe
选择创建的子账户 ,点击添加权限
选择相应的权限, 并点击确定添加
《8》回到国内短信页面 , 复制审核成功的短信签名名称 以及 短信模板ID
《9》完成上述步骤后, 已经得到了四个关键性参数
-
短信签名名称 : 快递驿站中心
-
短信模板CODE : SMS_213693660
-
accessKeyId:LTAI5tRK8vFDnEijSRxNyDEs
-
AccessKeySecret: ZIIW2Gt71FU8l48JyCIe4gzXmMYESe
《9》下载jar文件 , 并引入到项目中
《10》将上述参数, 复制到如下代码中。 并通过JSON方式顺序填充每一个短信模板中到参数
public static boolean send(String phoneNumber,String code) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "秘钥id", "秘钥值");
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setSysMethod(MethodType.POST);
request.setSysDomain("dysmsapi.aliyuncs.com");
request.setSysVersion("2017-05-25");
request.setSysAction("SendSms");
request.putQueryParameter("RegionId", "cn-hangzhou");
request.putQueryParameter("PhoneNumbers", "手机号");
request.putQueryParameter("SignName", "签名名称");
request.putQueryParameter("TemplateCode", "短信模板code");
request.putQueryParameter("TemplateParam", "填充的参数(JSON对象格式)");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
String json = response.getData();
Gson g = new Gson();
HashMap result = g.fromJson(json, HashMap.class);
if("OK".equals(result.get("Message"))) {
return true;
}else{
System.out.println("短信发送失败,原因:"+result.get("Message"));
}
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
return false;
}
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import java.util.HashMap;
import java.util.Random;
public class SMSDemo {
public static void main(String[] args) {
Random r = new Random();
int num=r.nextInt(900000)+100000;//100000-999999
send("18751902567",num+"");//发送短信
}
public static boolean send(String phoneNumber,String code) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "LTAI5tRK8vFDnEijSRxNyDEs", "ZIIW2Gt71FU8l48JyCIe4gzXmMYESe");
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setSysMethod(MethodType.POST);
request.setSysDomain("dysmsapi.aliyuncs.com");
request.setSysVersion("2017-05-25");
request.setSysAction("SendSms");
request.putQueryParameter("RegionId", "cn-hangzhou");
request.putQueryParameter("PhoneNumbers", phoneNumber);
request.putQueryParameter("SignName", " 快递驿站中心");
request.putQueryParameter("TemplateCode", "SMS_213693660");
request.putQueryParameter("TemplateParam", "{\"code\":\"“+code+”\"}");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
String json = response.getData();
Gson g = new Gson();
HashMap result = g.fromJson(json, HashMap.class);
if("OK".equals(result.get("Message"))) {
return true;
}else{
System.out.println("短信发送失败,原因:"+result.get("Message"));
}
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
return false;
}
}
现在个人已经无法申请短信功能,需要提供已上线app名称等条件。