阿里云发送短信验证码

需要引入的依赖:

		
			org.apache.httpcomponents
			httpclient
			4.3.3
		

		
			commons-httpclient
			commons-httpclient
			3.0
		
		
		    com.aliyun.mns
		    aliyun-sdk-mns
		    1.1.8
		    jar-with-dependencies
		
对应的官网JAVA代码(有时候引用的类冲突,不知道选择哪一个,故把所引用的类也粘贴进去了):

import com.aliyun.mns.client.CloudAccount;
import com.aliyun.mns.client.CloudTopic;
import com.aliyun.mns.client.MNSClient;
import com.aliyun.mns.common.ServiceException;
import com.aliyun.mns.model.BatchSmsAttributes;
import com.aliyun.mns.model.MessageAttributes;
import com.aliyun.mns.model.RawTopicMessage;
import com.aliyun.mns.model.TopicMessage;

public class BatchPublishSMSMessageDemo {
	public static void main(String[] args) {
		/**
		 * Step 1. 获取主题引用
		 */
		CloudAccount account = new CloudAccount("LTAIsY3V******", "CeohUjheZ*****qbGmJsQtYpD", "http://1807186517232*******shenzhen.aliyuncs.com/");
		MNSClient client = account.getMNSClient();
		CloudTopic topic = client.getTopicRef("sms.topic-cn-shenzhen");
		/**
		 * Step 2. 设置SMS消息体(必须)
		 * 
		 * 注:目前暂时不支持消息内容为空,需要指定消息内容,不为空即可。
		 */
		RawTopicMessage msg = new RawTopicMessage();
		msg.setMessageBody("验证码${code},您正在进行${product}身份验证,打死不要告诉别人哦!");
		/**
		 * Step 3. 生成SMS消息属性
		 */
		MessageAttributes messageAttributes = new MessageAttributes();
		BatchSmsAttributes batchSmsAttributes = new BatchSmsAttributes();
		// 3.1 设置发送短信的签名(SMSSignName)
		batchSmsAttributes.setFreeSignName("CRAZY_QU");
		// 3.2 设置发送短信使用的模板("SMS_67095870")
		batchSmsAttributes.setTemplateCode("SMS_67095876");
		// 3.3 设置发送短信所使用的模板中参数对应的值(在短信模板中定义的,没有可以不用设置)
		BatchSmsAttributes.SmsReceiverParams smsReceiverParams = new BatchSmsAttributes.SmsReceiverParams();
		
		//验证码
		String mobilecode = String.valueOf((int)((Math.random()*9+1)*100000));
		
		smsReceiverParams.setParam("code" , mobilecode);//比如随机生成的验证码为930309
		 smsReceiverParams.setParam("product", "crazy_qu");
		// 3.4 增加接收短信的号码
		batchSmsAttributes.addSmsReceiver("18******9378", smsReceiverParams);
		messageAttributes.setBatchSmsAttributes(batchSmsAttributes);
		try {
			/**
			 * Step 4. 发布SMS消息
			 */
			TopicMessage ret = topic.publishMessage(msg, messageAttributes);
			System.out.println("MessageId: " + ret.getMessageId());
			System.out.println("MessageMD5: " + ret.getMessageBodyMD5());
		} catch (ServiceException se) {
			System.out.println(se.getErrorCode() + se.getRequestId());
			System.out.println(se.getMessage());
			se.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
		client.close();
	}
}


短信接收内容:[CRAZY_QU]验证码930309,您正在进行crazy_qu身份验证,打死不要告诉别人哦!


官网模版:

    public class BatchPublishSMSMessageDemo {
        public static void main(String[] args) {
            /**
             * Step 1. 获取主题引用
             */
            CloudAccount account = new CloudAccount("$YourAccessId", "$YourAccessKey", "$YourMNSEndpoint");
            MNSClient client = account.getMNSClient();
            CloudTopic topic = client.getTopicRef("$YourTopic");
            /**
             * Step 2. 设置SMS消息体(必须)
             *
             * 注:目前暂时不支持消息内容为空,需要指定消息内容,不为空即可。
             */
            RawTopicMessage msg = new RawTopicMessage();
            msg.setMessageBody("sms-message");
            /**
             * Step 3. 生成SMS消息属性
             */
            MessageAttributes messageAttributes = new MessageAttributes();
            BatchSmsAttributes batchSmsAttributes = new BatchSmsAttributes();
            // 3.1 设置发送短信的签名(SMSSignName)
            batchSmsAttributes.setFreeSignName("$YourSignName");
            // 3.2 设置发送短信使用的模板(SMSTempateCode)
            batchSmsAttributes.setTemplateCode("$YourSMSTemplateCode");
            // 3.3 设置发送短信所使用的模板中参数对应的值(在短信模板中定义的,没有可以不用设置)
            BatchSmsAttributes.SmsReceiverParams smsReceiverParams = new BatchSmsAttributes.SmsReceiverParams();
            smsReceiverParams.setParam("$YourSMSTemplateParamKey1", "$value1");
            smsReceiverParams.setParam("$YourSMSTemplateParamKey2", "$value2");
            // 3.4 增加接收短信的号码
            batchSmsAttributes.addSmsReceiver("$YourReceiverPhoneNumber1", smsReceiverParams);
            batchSmsAttributes.addSmsReceiver("$YourReceiverPhoneNumber2", smsReceiverParams);
            messageAttributes.setBatchSmsAttributes(batchSmsAttributes);
            try {
                /**
                 * Step 4. 发布SMS消息
                 */
                TopicMessage ret = topic.publishMessage(msg, messageAttributes);
                System.out.println("MessageId: " + ret.getMessageId());
                System.out.println("MessageMD5: " + ret.getMessageBodyMD5());
            } catch (ServiceException se) {
                System.out.println(se.getErrorCode() + se.getRequestId());
                System.out.println(se.getMessage());
                se.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
            client.close();
        }
    }










你可能感兴趣的:(前端,阿里云,短信,验证码)