短信接口-- java

客户接口部分提供https 和 WebService(目前只支持提交短信) 方式的接口,客户可以根据需求选择相应接口,接口编码方式默认采用UTF-8

发送规则:

同一个号码,发送内容带有(验证码),3分钟之内只能3条,

超过3条,系统会默认为(恶意注册)

同一个号码,系统默认一天之内只能发送10条信息,超过

10条会超限失败(特殊号码、或特殊客户需要找客服处理)

注:短信计费条数跟短信的字数有关,一般的短信70个字计费一条。超过70个字就划分为长短信,67个字计费一条,例如;71字的短信就是长短信计费2条,134个字也是计费2条(67*2)。135个字计费3条,依次类推。
第一章  短信发送接口
1.1 请求地址
请求地址是客户接口程序调用时请求的url地址,采用的是https post 接口,地址是

https://dx.ipyy.net/sms.aspx 对应UTF-8

https://dx.ipyy.net/smsGBK.aspx 对应GB2312

https://dx.ipyy.net/smsJson.aspx 对应UTF-8(返回值为json格式)

https://dx.ipyy.net/ensms.ashx 对应UTF-8(加密传输,使用json)

入口地址一般不会发生变化,当发生变化的时候,会通知接口用户 

private static CloseableHttpClient client;
  public String sendVerificationCode(String phone) {

final String Url = "https://dx.ipyy.net/ensms.ashx";

//用户ID。
String userId = "59833";
//用户账号名
String userName = "9M00031";
//接口密码
String password = "9M0003121";

//目标手机号,多个以半角","分隔
String mobile = phone;
String CodeStr = String.valueOf((new Random().nextInt(899999) + 100000));

//信息内容
String content = "【xxxxxx】您的验证码是:" + CodeStr + ",有效时间五分钟";

//扩展号,没有请留空
String ext = "";

//即时短信请留空,定时短信请指定,格式为:yyyy-MM-dd HH:mm:ss
String sendTime = "";
String stamp = new SimpleDateFormat("MMddHHmmss").format(new Date());
String secret = MD5.GetMD5Code(password + stamp).toUpperCase();

try {
JSONObject jsonObj = new JSONObject();
jsonObj.put("UserName", userName);
jsonObj.put("Stamp", stamp);
jsonObj.put("Secret", secret);
jsonObj.put("Moblie", mobile);
jsonObj.put("Text", content);
jsonObj.put("Ext", ext);
jsonObj.put("SendTime", sendTime);

//Des加密,base64转码
String text64 = DesHelper.Encrypt(jsonObj.toString(), password);
client = SSLClient.createSSLClientDefault();
HttpPost post = new HttpPost(Url);
post.setHeader("Content-type", "application/x-www-form-urlencoded;charset=utf-8");
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("UserId", userId));
nvps.add(new BasicNameValuePair("Text64", text64));
post.setEntity(new UrlEncodedFormEntity(nvps));
HttpResponse response = client.execute(post);

HttpEntity entity = response.getEntity();
String returnString = EntityUtils.toString(entity, "UTF-8");
// System.out.println(returnString);
EntityUtils.consume(entity);

} catch (Exception ex) {
// System.out.println(ex.getMessage());
}
return CodeStr;
}

 

上一篇:layui-table前端获取标签数据以json的格式封装传到后端


下一篇:Hive中的ODS、 DWD、 DWS、 ADS 数仓分层