package com.xcong.excoin.utils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 短信发送工具 * * @author wzy * @date 2020-05-18 **/ public class SmsUtils { private static HttpClient httpclient; @SuppressWarnings("deprecation") public static Map hxSmsSend(String mobile, String sendContent) { Map map = new HashMap(); try { httpclient = new SSLClient(); //TFT001 String url = "https://dx.ipyy.net/sms.aspx"; //excoin DX001 //ctcoin:OT00028 //改为实际账号名 String accountName = "DX001"; //excoin 1qaz2wsx //ctcoin: atvckt //改为实际发送密码 String password = "1qaz2wsx"; String text = sendContent; HttpPost post = new HttpPost(url); post.setHeader("Content-type", "application/x-www-form-urlencoded;charset=utf-8"); List nvps = new ArrayList(); nvps.add(new BasicNameValuePair("action", "send")); nvps.add(new BasicNameValuePair("userid", "")); nvps.add(new BasicNameValuePair("account", accountName)); nvps.add(new BasicNameValuePair("password", password)); //多个手机号用逗号分隔 nvps.add(new BasicNameValuePair("mobile", mobile)); nvps.add(new BasicNameValuePair("content", text)); nvps.add(new BasicNameValuePair("sendTime", "")); nvps.add(new BasicNameValuePair("extno", "")); post.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); HttpResponse response = httpclient.execute(post); HttpEntity entity = response.getEntity(); // 将字符转化为XML String returnString = EntityUtils.toString(entity, "UTF-8"); Document doc = DocumentHelper.parseText(returnString); // 获取根节点 Element rootElt = doc.getRootElement(); // 获取根节点下的子节点的值 String returnstatus = rootElt.elementText("returnstatus").trim(); String message = rootElt.elementText("message").trim(); String remainpoint = rootElt.elementText("remainpoint").trim(); String taskID = rootElt.elementText("taskID").trim(); String successCounts = rootElt.elementText("successCounts").trim(); map.put("returnstatus", returnstatus); map.put("message", message); map.put("remainpoint", remainpoint); map.put("taskID", taskID); map.put("successCounts", successCounts); } catch (Exception e) { e.printStackTrace(); } return map; } /** * 短信验证码 * * @param phone 手机号 * @param code 验证码 * @return */ public static Map sendVerifyCode(String phone, int code) { String smsContent = "【Excoin】您的验证码为:"+code+",该验证码有效期为2分钟,请勿泄露于他人。"; return hxSmsSend(phone, smsContent); } }