短讯云

云短信注册地址 这里使用json模板

package com.devart.woodpecker.hsjg.salemanage.shortmessage;

import java.util.Date;

import lombok.Data;

@Data
public class SSmsRecord {
private Long senderId;

private String userName;

private Date sendTime;

private String sendContent;

private String mobiles;

private Integer receiverCount;

private String receiverIds;

private String responseMessage;

}
这里是正文

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Date;

import lombok.Data;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

@Data
public class sendMessageUnit {
/** 用户名常量 /
public static final String UID = “到云短信注册的用户名”;
/
* 用户密码常量 /
public static final String PWD = “云短信提供的密码”;
/
* 模板id /
public static final Integer TEMPLATE = 501653;//这个id需要到云短信申请
/
* 签名 send */
public static final String Ac = “send”;//这个签名是写死的 不用管

/** 用户名 */
private String uid;
/** 用户密码 */
private String pwd;
/** 群发号码组 */
private String mobile;
/** 短信内容 */
private String content;
/** 短信最大长度 */
private Integer length;
/** 模板id */
private Integer template;
/** 签名 */
private String ac;

/**
 * 
 * @param mobile 电话号码,多个用","分开
 * @param content 短信内容
 */
public sendMessageUnit(String mobile, String content) {
	this.uid = UID;
	this.template = TEMPLATE;
	this.ac = Ac;
	this.pwd = PWD;
	this.mobile = mobile;
	this.length = 70;
	this.content = content;
}

/**
 * 将返回状态编码转化为描述结果
 * 
 * @param logger
 *            打印信息
 * @param result
 *            状态编码
 * @return 描述结果
 */
private static String getResponse(String result) {
	Log logger = LogFactory.getLog(sendMessageUnit.class);
	if (result.equals("100")) {
		logger.info("发送成功");
		return "发送成功";
	}
	if (result.equals("101")) {
		logger.info("验证失败");
		return "验证失败";
	}
	if (result.equals("102")) {
		logger.info("短信不足");
		return "短信不足";
	}
	if (result.equals("103")) {
		logger.info("操作失败");
		return "操作失败";
	}
	if (result.equals("104")) {
		logger.info("非法字符");
		return "非法字符";
	}
	if (result.equals("105")) {
		logger.info("内容过多");
		return "内容过多";
	}
	if (result.equals("106")) {
		logger.info("号码过多");
		return "号码过多";
	}

	if (result.equals("108")) {
		logger.info("号码内容空");
		return "号码内容空";
	}
	if (result.equals("109")) {
		logger.info("账号冻结");
		return "账号冻结";
	}

	if (result.equals("112")) {
		logger.info("号码不正确");
		return "号码不正确";
	}
	if (result.equals("117")) {
		logger.info("绑定IP不正确");
		return "绑定IP不正确";
	}
	if (result.equals("161")) {
		logger.info("未添加短信模板");
		return "未添加短信模板";
	}
	if (result.equals("162")) {
		logger.info("模板格式不正确");
		return "模板格式不正确";
	}
	if (result.equals("163")) {
		logger.info("模板ID不正确");
		return "模板ID不正确";
	}
	if (result.equals("164")) {
		logger.info("全文模板不匹配");
		return "全文模板不匹配";
	}
	return result;
}

/**
 * http发送请求
 * @return
 */
public SSmsRecord sendMessage(){
	Log logger = LogFactory.getLog(sendMessageUnit.class);
	String result = "";
	// 创建StringBuffer对象用来操作字符串
	StringBuffer sb = new StringBuffer("http://api.yunduanxin.com/sms/?");
	sb.append("ac=").append(this.ac);
	// 向StringBuffer追加用户名
	sb.append("&uid=").append(this.uid);
	// 向StringBuffer追加密码(密码采用MD5 32位 小写)
	sb.append("&pwd=").append(this.pwd);
	// 
	sb.append("&template=").append(this.template);
	// 向StringBuffer追加手机号码
	sb.append("&mobile=").append(this.mobile);
	System.out.println("请求路径"+sb.toString()+"&content="+this.content);
	// 向StringBuffer追加消息内容转URL标准码
	sb.append("&content=").append(URLEncoder.encode(this.content));
	sb.append("&encode=utf8");
	try {
		// 创建url对象
		URL url = new URL(sb.toString());
		// 打开url连接
		HttpURLConnection connection = (HttpURLConnection) url.openConnection();
		// 设置url请求方式 ‘get’ 或者 ‘post’
		connection.setRequestMethod("POST");
		// 发送
		BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
		// 返回发送结果
		result = in.readLine().toString();
	} catch (MalformedURLException e) {
		e.printStackTrace();
		logger.info("编码转换异常");
	} catch (ProtocolException e) {
		e.printStackTrace();
		logger.info("协议使用异常");
	} catch (IOException e) {
		e.printStackTrace();
		logger.info("返回结果异常");
	} finally {
		//这个对象是你自己新建的,变量都写好就可以了
		SSmsRecord smsRecord = new SSmsRecord();
		smsRecord.setUserName(this.uid);
		smsRecord.setSendTime(new Date());
		smsRecord.setSendContent(this.content);
		smsRecord.setMobiles(this.mobile);
		smsRecord.setReceiverCount(this.mobile.split(",").length
				* (this.content.length() / 70 + 1));
		smsRecord.setResponseMessage(getResponse(result));
		return smsRecord;
	}
}

}
下面就是调用了

		//对象转为json
    	String jsonValue = mapper.writeValueAsString(shortMessageEntity);
    	sendMessageUnit sendMessageUnit = new sendMessageUnit("电话号码,多个号码使用“,”分割就好了", jsonValue);
    	SSmsRecord smsRecord = sendMessageUnit.sendMessage();

作者:o马蹄o
来源:CSDN
原文:https://blog.csdn.net/qq_36491545/article/details/83187972
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值