阿里云发送短信验证码

需要引入的依赖:

		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>4.3.3</version>
		</dependency>

		<dependency>
			<groupId>commons-httpclient</groupId>
			<artifactId>commons-httpclient</artifactId>
			<version>3.0</version>
		</dependency>
		<dependency>
		    <groupId>com.aliyun.mns</groupId>
		    <artifactId>aliyun-sdk-mns</artifactId>
		    <version>1.1.8</version>
		    <classifier>jar-with-dependencies</classifier>
		</dependency>
对应的官网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();
        }
    }










  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值