欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

SMS短信通API下行接口参数

发布时间:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的这篇文章主要介绍了 SMS短信通API下行接口参数 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

为什么80%的码农都做不了架构师?>>>   

JAVA发送手机短信

方法:

(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册.  https://my.oschina.net/lmoon/blog/1477175                

(2)使用短信mao的方式进行短信的发送,这种方式应该是比较常用,前提是需要购买硬件设备.

(3)使用中国网建提供的SMS短信平台.

一、使用中国网建提供的API给手机发送短信

为了使用中国网建给对方手机发送短信,需要以下几步操作:

1.登录中国网建,地址为:http://sms.webchinese.cn/

2.注册,注册后你就会有用户名和密码,密码会自动发到你的手机里

3.获取网管接口密码,至于如何获得网关接口密码,我是这样偶尔获得的(网管接口密码并不是注册时发送到手机里的登录密码)。在该网站里尝试发一条短信,发短信时会有相应的提示,在发送的过程中会出现你的网关接口密码。

注意:你要保存好你的网关接口秘密,因为每次当你使用代码发送信息时都需要这个网关接口密码。

以下代码及所使用的jar可以从http://sms.webchinese.cn/直接获得。

GBK编码发送接口地址
http://gbk.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全秘钥&smsMob=手机号码&smsText=验证码:8888
UTF-8编码发送接口地址:
http://utf8.sms.webchinese.cn/?Uid=本站用户名&Key=接口安全秘钥&smsMob=手机号码&smsText=验证码:8888
获取短信数量接口地址(UTF8):
http://sms.webchinese.cn/web_api/SMS/?Action=SMS_Num&Uid=本站用户名&Key=接口安全秘钥
获取短信数量接口地址(GBK):
http://sms.webchinese.cn/web_api/SMS/GBK/?Action=SMS_Num&Uid=本站用户名&Key=接口安全秘钥

提示:HTTP调用URL接口时, 参数值必须URL编码后再调用

参数变量说明
Gbk编码Urlhttp://gbk.sms.webchinese.cn/
Utf-8编码Urlhttp://utf8.sms.webchinese.cn/
Uid本站用户名(如您无本站用户名请先注册)[免费注册]
Key注册时填写的接口秘钥(可到用户平台修改接口秘钥)[立刻修改]
如需要加密参数,请把Key变量名改成KeyMD5,
KeyMD5=接口秘钥32位MD5加密,大写。
smsMob目的手机号码(多个手机号请用半角逗号隔开)
smsText短信内容,最多支持400个字,普通短信70个字/条,长短信64个字/条计费

多个手机号请用半角,隔开
如:13888888886,13888888887,1388888888 一次最多对100个手机发送
短信内容支持长短信,最多400字,普通短信70个字/条含签名,长短信64字/条计费

短信发送后返回值说 明
-1没有该用户账户
-2接口密钥不正确 [查看密钥]
不是账户登陆密码
-21MD5接口密钥加密不正确
-3短信数量不足
-11该用户被禁用
-14短信内容出现非法字符
-4手机号格式不正确
-41手机号码为空
-42短信内容为空
-51短信签名格式不正确
接口签名格式为:【签名内容】
-6IP限制
大于0短信发送数量
注:调用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.sms.webchinese.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
注意:不过目前commons-httpclient-3.1.jar已经不存在,其所实现的功能,已经被加入到httpcomponents-client的Apache项目中。

网管选择:默认网关、106网管(带签名)和广告网管。

使用事项:

(1)给陌生人发广告短信,请您切换到广告网关发送,如发现用106网关发送立即封号;
(2)106网关不允许给陌生人发广告,否则封号,允许给老客户、会员或员工发送信息;
(3)106行业网关独立请联系客服,量大开通。
(4)本站全部网关对联通和电信用户手机接收到的短信全部采用106网关发送,即发即到。
(5)广告网关发移动手机采用106网关模拟手机号码,为空号,部分时段有延时到达率99%;

演示程序下载
java_dome.rar

说明:如果返回值是200,应该是整段程序代码没有执行完整,只获取到client.executeMethod(post)HTTP状态码的消息;接口是提交成功,没有执行下半部的返回消息代码。
client.executeMethod(post);HTTP状态码参考:http://baike.baidu.com/view/1790469.htm

 

二、使用短信mao的方式进行短信的发送

此方式前提是需要购买硬件设备

import org.smslib.IOutboundMessageNotification;import org.smslib.Library;import org.smslib.OutboundMessage;import org.smslib.Service;import org.smslib.Message.MessageEncodings;import org.smslib.modem.SerialModemGateway; public class SendMessage {public void doIt() throws Exception {Service srv;OutboundMessage msg;OutboundNotification outboundNotification = new OutboundNotification();System.out.println("Example: Send message from a serial gsm modem.");System.out.println(Library.getLibraryDescription());System.out.println("Version: " + Library.getLibraryVersion());srv = new Service();//SerialModemGateway(com名称,串口号,破特率,连接设备名称,设备型号,sms pin)SerialModemGateway gateway = new SerialModemGateway("modem.com5", "COM5", 9600, "wavecom", "1234");gateway.setInbound(true); // 设置网关可以写入信息gateway.setOutbound(true); // 设置网关可以读取信息gateway.setSimPin("1234"); // 设置SIM PINgateway.setOutboundNotification(outboundNotification); // 设置入信回调实现srv.addGateway(gateway);// 发信服务中添加设定的网关 srv.startService(); // 初始化所有的网关System.out.println("Modem Information:");System.out.println(" Manufacturer: " + gateway.getManufacturer());System.out.println(" Model: " + gateway.getModel());System.out.println(" Serial No: " + gateway.getSerialNo());System.out.println(" SIM IMSI: " + gateway.getImsi());System.out.println(" Signal Level: " + gateway.getSignalLevel() + "%");System.out.println(" Battery Level: " + gateway.getBatteryLevel() + "%");System.out.println();// Send a message synchronously.// 手机号码,和短信内容msg = new OutboundMessage("15972900071", "今天星期三,2013-07-31,特别的日子!");msg.setEncoding(MessageEncodings.ENCUCS2);// 这句话是发中文短信必须的 srv.sendMessage(msg); //执行发送System.out.println(msg);System.out.println("Now Sleeping - Hit <enter> to terminate.");System.in.read();srv.stopService();}public class OutboundNotification implements IOutboundMessageNotification {public void process(String gatewayId, OutboundMessage msg) {System.out.println("Outbound handler called from Gateway: " + gatewayId);System.out.println(msg);}}public static void main(String args[]) {SendMessage app = new SendMessage();try {app.doIt();} catch (Exception e) {e.printStackTrace();}}}

 

转载于:https://my.oschina.net/lmoon/blog/1477142

总结

以上是生活随笔为你收集整理的SMS短信通API下行接口参数的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。