因为做的是第三方短信通知,期间选择的多家(阿里云短信,极光,中证云等),都是因为需要一家公司绑定一个端口,比较麻烦,后边综合考虑选型到【网建短信通】,以下是一些对接事宜,希望可以帮到一些需要的朋友
文中蓝色字体有链接的地方都可以转接到短信通短信平台
SMS短信通API下行接口参数 | 短信上行回复API |
重要提示:用接口发送验证码的程序员注意,近期短信验证码轰炸软件泛滥,请在发送验证码的时候,加上一个图形校验码验证,防止机器人读取狂发验证码!!!不明事宜请联系客服咨询。发送手机验证码请做好以下几点防范:
发送验证码1分钟只能点击发送1次;
相同IP手机号码1天最多提交20次;
验证码短信单个手机号码30分钟最多提交10次;
在提交页面加入图形校验码,防止机器人恶意发送;
在发送验证码接口程序中,判断图形校验码输入是否正确;
新用户用接口测试验证码时,请勿输入:测试等无关内容信息,请直接输入:验证码:xxxxxx,发送。
接口发送触发短信时,您可以把短信内容提供给客服绑定短信模板,绑定后24小时即时发送。未绑定模板的短信21点以后提交,隔天才能收到。
GBK编码发送接口地址:
http://gbk.api.smschinese.cn/?Uid=本站用户名&Key=接口安全秘钥&smsMob=手机号码&smsText=验证码:8888
UTF-8编码发送接口地址:
http://utf8.api.smschinese.cn/?Uid=本站用户名&Key=接口安全秘钥&smsMob=手机号码&smsText=验证码:8888
获取短信数量接口地址(UTF8):
http://www.smschinese.cn/web_api/SMS/?Action=SMS_Num&Uid=本站用户名&Key=接口安全秘钥
获取短信数量接口地址(GBK):
http://www.smschinese.cn/web_api/SMS/GBK/?Action=SMS_Num&Uid=本站用户名&Key=接口安全秘钥
提示:HTTP调用URL接口时, 参数值必须URL编码后再调用
多个手机号请用半角,隔开
如:13888888886,13888888887,1388888888 一次最多对100个手机发送
短信内容支持长短信,最多400字,普通短信70个字/条含签名,长短信64字/条计费
注:调用API接口,请登录平台,申请106网关发送,即发即到!
发送测试短信请勿输入:短信测试等词语,请直接提交您要发送的短信内容;
接口发送短信时请在内容后加签名:【XX公司或XX网名称】,否者会被屏蔽。
短信签名可在用户平台平台上设置,也可以在短信内容后,直接加入。
JAVA调用
import java.io.UnsupportedEncodingException; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; public class SendMsg_webchinese { public static void main(String[] args)throws Exception { HttpClient client = new HttpClient(); PostMethod post = new PostMethod("http://gbk.api.smschinese.cn"); post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");//在头文件中设置转码 NameValuePair[] data ={ new NameValuePair("Uid", "本站用户名"),new NameValuePair("Key", "接口安全秘钥"),new NameValuePair("smsMob","手机号码"),new NameValuePair("smsText","验证码:8888")}; post.setRequestBody(data); client.executeMethod(post); Header[] headers = post.getResponseHeaders(); int statusCode = post.getStatusCode(); System.out.println("statusCode:"+statusCode); for(Header h : headers) { System.out.println(h.toString()); } String result = new String(post.getResponseBodyAsString().getBytes("gbk")); System.out.println(result); //打印返回消息状态 post.releaseConnection(); } }
jar包下载
commons-logging-1.1.1.jar
commons-httpclient-3.1.jar
commons-codec-1.4.jar
演示程序下载
java_dome.rar
说明:如果返回值是200,应该是整段程序代码没有执行完整,只获取到client.executeMethod(post)HTTP状态码的消息;接口是提交成功,没有执行下半部的返回消息代码。
client.executeMethod(post);HTTP状态码参考:HTTP状态码_百度百科
API 地址:短信平台接口_短信API接口_短信通接口_106短信接口_网建SMS短信通接口