调用阿里云接口实现短信消息的发送源码——CSDN博客

在调用阿里云接口之前首先需要购买接口,获得accessKeySecret,然后使用下列代码就可以直接调用了!!

 /**  
* @Title: TestPhoneVerification.java
* @Package org.test
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com  
* @date 2017-7-1 下午8:19:35
* @version V1.0  
*/
package org.test;

import java.util.Random;

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.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;

 /**   
 *    
 * 项目名称:facephoto2   
 * 类名称:TestPhoneVerification   
 * 类描述:   
 * 创建人:Mu Xiongxiong  
 * 创建时间:2017-7-1 下午8:19:35   
 * 修改人:Mu Xiongxiong   
 * 修改时间:2017-7-1 下午8:19:35   
 * 修改备注:   
 * @version    
 *    
 */
public class TestPhoneVerification {
	public static void main(String[] args) throws ServerException, ClientException {
		
		// 设置超时时间-可自行调整
		System.setProperty("sun.net.client.defaultConnectTimeout", "20000");
		System.setProperty("sun.net.client.defaultReadTimeout", "20000");
		// 初始化ascClient需要的几个参数
		final String product = "Dysmsapi";// 短信API产品名称
		final String domain = "dysmsapi.aliyuncs.com";// 短信API产品域名
		// 替换成你的AK
		final String accessKeyId = "LTAIXhKAji7WzEFx";// 你的accessKeyId,参考本文档步骤2
		final String accessKeySecret = "7mYMnzCGZ";// 你的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();
		// 必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为20个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
		request.setPhoneNumbers("15098932660");
		// 必填:短信签名-可在短信控制台中找到
		request.setSignName("光明峰管理平台");
		// 必填:短信模板-可在短信控制台中找到
		request.setTemplateCode("SMS_75720062");
		// 可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
		int x = new Random().nextInt(1000000);
		request.setTemplateParam("{\"name\":\"张三\", \"number\":\"" + x + "\"}");
		// 可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
		// request.setOutId("yourOutId");
		// 请求失败这里会抛ClientException异常
		SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
		if (sendSmsResponse.getCode() != null
				&& sendSmsResponse.getCode().equals("OK")) {
			// 请求成功
			System.out.println("发送成功!");
		}else if(sendSmsResponse.getCode().equals("isv.BUSINESS_LIMIT_CONTROL")){
			System.out.println("此号码频繁发送验证码,暂时不能获取!");
		}
		System.out.println(sendSmsResponse.getCode());
	}
}


posted @ 2017-08-20 22:09  穆雄雄  阅读(571)  评论(0编辑  收藏  举报