public class JYMessageSend implements IShellSmsMessage {
private static Logger log = LoggerFactory.getLogger(JYMessageSend.class);
@Override
public void sendShortMessage(String mobile, String verifyCode, long verifyNo, Date expiredTime, Map<String, Object> params) {
log.info("收到发送短信请求,手机号为:{},验证码为:{},有效期至:{},请求参数为:{},短信模板id:2764532",mobile,verifyCode,expiredTime,params);
String templateId = new FrameConfigService9().getFrameConfigValueByNameWithDefault("sms_templateId", "2764532");
MessageSendUtil.sendMessage(mobile,verifyCode,templateId);
}
}
public class MessageSendUtil
{
private static Logger log = Logger.getLogger(MessageSendUtil.class);
public static final String MESSAGE_SEND_URL = "";
public static final String CPCODE = "";
public static final String ACCESS_Key = "";
public static void sendMessage(String mobiles, String msg,
String templetid) {
String retResult = "";
JSONObject params = new JSONObject();
params.put("cpcode", CPCODE);
params.put("msg", msg);
params.put("mobiles", mobiles);
params.put("excode", "");
params.put("templetid", templetid);
try {
params.put("sign", md5Sign(msg, mobiles, "", templetid));
HttpUtil.RequestOptions options = new HttpUtil.RequestOptions(10000, 10000, 10000);
retResult = HttpUtil.doHttp(MESSAGE_SEND_URL, null, params.toString(), HttpUtil.POST_METHOD,
HttpUtil.RTN_TYPE_STRING, options);
}
catch (Exception e) {
log.error("---------发送短信消息接口调用失败,错误信息:" + e.getMessage());
e.printStackTrace();
}
if (StringUtil.isNotBlank(retResult) && !"{}".equals(retResult)) {
JSONObject rtnJson = JSONObject.parseObject(retResult);
if (rtnJson.containsKey("resultcode") && "0".equals(rtnJson.getString("resultcode"))) {
}
else {
}
}
else {
}
}
public static String md5Sign(String msg, String mobiles, String excode, String templetid) {
String md5source = CPCODE + msg + mobiles + excode + templetid + ACCESS_Key;
String md5str = "";
try {
md5str = StringUtil.toLowerCase(makeMD5(new String(md5source.getBytes("UTF-8"), "UTF-8")));
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return md5str;
}
public static String makeMD5(String plainText) {
String re_md5 = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes("UTF-8"));
byte[] b = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0) {
i += 256;
}
if (i < 16) {
buf.append("0");
}
buf.append(Integer.toHexString(i));
}
re_md5 = StringUtil.toLowerCase(buf.toString());
}
catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return re_md5;
}
public static String getFullApiUrl(String apiUrl, Object params) {
if (StringUtil.isBlank(params)) {
return apiUrl;
}
else {
StringBuffer param = new StringBuffer();
if (params instanceof Map) {
Map<String, Object> paramsConvert = (Map)params;
int i = 0;
String key = "";
for(Iterator paramsData = paramsConvert.entrySet().iterator(); paramsData.hasNext(); ++i) {
Map.Entry<String, Object> entry = (Map.Entry)paramsData.next();
key = entry.getKey();
if (i == 0) {
param.append("?");
}
else {
param.append("&");
}
param.append(key).append("=").append(paramsConvert.get(key));
}
}
else {
param.append("?" + params.toString());
}
return apiUrl + param;
}
}
}