You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
5.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//package com.xmomen.module.sms.api;
//
//import org.apache.shiro.ShiroException;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.InitializingBean;
//import org.springframework.stereotype.Component;
//
//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;
//import com.xmomen.framework.exception.BusinessException;
//import com.xmomen.module.sms.util.GlobalIdentifyCodeManager;
//import com.xmomen.module.wx.pay.common.RandomStringGenerator;
//
//@Component
//public class SmsMessageService implements InitializingBean {
//
// static Logger log = LoggerFactory.getLogger(SmsService.class);
//
// private MNSClient client;
//
// // 启动时创建连接
// public void startUp() {
// CloudAccount account = new CloudAccount("LTAI1klbIDX7r7cw",
// "YIy5b9LtvfRvboEXhJjztmJCY7eO2I",
// "http://1478678502173333.mns.cn-hangzhou.aliyuncs.com/");
// client = account.getMNSClient();
// }
// // 发送单个请求
// public SmsResponse sendSingleRequest(String phoneNumber) throws Exception {
// if(client == null || !client.isOpen()) {
// log.info("client已关闭重新创建连接");
// startUp();
// }
// CloudTopic topic = client.getTopicRef("sms.topic-cn-hangzhou");
//
// /**
// * 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("益谷上禾");
// // 3.2 设置发送短信使用的模板SMSTempateCode
// batchSmsAttributes.setTemplateCode("SMS_67180402");
// // 3.3 设置发送短信所使用的模板中参数对应的值(在短信模板中定义的,没有可以不用设置)
// BatchSmsAttributes.SmsReceiverParams smsReceiverParams = new BatchSmsAttributes.SmsReceiverParams();
// String identifyCode = RandomStringGenerator.getRandomNumberStrByLength(6);
// smsReceiverParams.setParam("code", identifyCode);
// // 3.4 增加接收短信的号码
// batchSmsAttributes.addSmsReceiver(phoneNumber, smsReceiverParams);
// messageAttributes.setBatchSmsAttributes(batchSmsAttributes);
//
// try {
// /**
// * Step 4. 发布SMS消息
// */
// TopicMessage ret = topic.publishMessage(msg, messageAttributes);
// log.info("MessageId:" + ret.getMessageId());
// GlobalIdentifyCodeManager.updateIdenfifyCode(phoneNumber, identifyCode);
// SmsResponse response = new SmsResponse();
// response.setSuccess(true);
// return response;
// } catch (ServiceException se) {
// log.error("API异常" + se.getMessage());
// throw new BusinessException("执行SMS API 异常ErrorCode=" + se.getErrorCode() + ", RequestId=" + se.getRequestId());
// } catch (Exception e) {
// log.error("系统异常", e.getMessage());
// client.close();
// client = null;
// return null;
// }
// }
//
// // 发送密码信息
// public SmsResponse sendPasswordInfo(String phoneNumber, String plainPassword) {
// if(client == null || !client.isOpen()) {
// log.info("client已关闭重新创建连接");
// startUp();
// }
// CloudTopic topic = client.getTopicRef("sms.topic-cn-hangzhou");
// MessageAttributes messageAttributes = new MessageAttributes();
// BatchSmsAttributes batchSmsAttributes = new BatchSmsAttributes();
// // 3.1 设置发送短信的签名SMSSignName
// batchSmsAttributes.setFreeSignName("益谷上禾");
// // TODO 密码重置的模板
// batchSmsAttributes.setTemplateCode("SMS_67180402");
// // 3.3 设置发送短信所使用的模板中参数对应的值(在短信模板中定义的,没有可以不用设置)
// BatchSmsAttributes.SmsReceiverParams smsReceiverParams = new BatchSmsAttributes.SmsReceiverParams();
// smsReceiverParams.setParam("code", plainPassword);
// // 3.4 增加接收短信的号码
// batchSmsAttributes.addSmsReceiver(phoneNumber, smsReceiverParams);
// messageAttributes.setBatchSmsAttributes(batchSmsAttributes);
//
// RawTopicMessage msg = new RawTopicMessage();
// msg.setMessageBody("sms-message");
// try {
// TopicMessage ret = topic.publishMessage(msg, messageAttributes);
// log.info("MessageId:" + ret.getMessageId());
// SmsResponse response = new SmsResponse();
// response.setSuccess(true);
// return response;
// } catch (ServiceException se) {
// log.error("API异常" + se.getMessage());
// throw new BusinessException("执行SMS API 异常ErrorCode=" + se.getErrorCode() + ", RequestId=" + se.getRequestId());
// } catch (Exception e) {
// log.error("系统异常", e.getMessage());
// client.close();
// client = null;
// return null;
// }
// }
//
// // 在属性设置完成后调用
// @Override
// public void afterPropertiesSet() throws Exception {
// startUp();
// }
//}