客戶接口部分提供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; }