客户接口部分提供https 和 WebService(目前只支持提交短信) 方式的接口,客户能够根据需求选择相应接口,接口编码方式默认采用UTF-8json
发送规则:app
同一个号码,发送内容带有(验证码),3分钟以内只能3条,dom
超过3条,系统会默认为(恶意注册)post
同一个号码,系统默认一天以内只能发送10条信息,超过编码
10条会超限失败(特殊号码、或特殊客户须要找客服处理)加密
注:短信计费条数跟短信的字数有关,通常的短信70个字计费一条。超过70个字就划分为长短信,67个字计费一条,例如;71字的短信就是长短信计费2条,134个字也是计费2条(67*2)。135个字计费3条,依次类推。
第一章 短信发送接口
1.1 请求地址
请求地址是客户接口程序调用时请求的url地址,采用的是https post 接口,地址是url
https://dx.ipyy.net/sms.aspx 对应UTF-8.net
https://dx.ipyy.net/smsGBK.aspx 对应GB2312code
https://dx.ipyy.net/smsJson.aspx 对应UTF-8(返回值为json格式)orm
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; }