Java、android使用的短信SDK是多线程:

http://sdk.entinfo.cn:8061/webservice.asmx

其他编程语言使用的是下面接口,希望注意。

http://sdk.entinfo.cn:8060/webservice.asmx

一、Client.class类定义

package com;
import java.io.*;
import java.net.*;
import java.security.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Client {/** webservice服务器定义*/private String serviceURL = "http://sdk.entinfo.cn:8061/webservice.asmx";//这里面使用多线程接口,而不是http://sdk.entinfo.cn:8060/webservice.asmxprivate String sn = "";// 序列号private String password = "";private String pwd = "";// 密码/** 构造函数*/public Client(String sn, String password)throws UnsupportedEncodingException {this.sn = sn;this.password = password;//密码为md5(sn+password)this.pwd = this.getMD5(sn + password);}/** 方法名称:getMD5 * 功    能:字符串MD5加密 * 参    数:待转换字符串 * 返 回 值:加密之后字符串*/public String getMD5(String sourceStr) throws UnsupportedEncodingException {String resultStr = "";try {byte[] temp = sourceStr.getBytes();MessageDigest md5 = MessageDigest.getInstance("MD5");md5.update(temp);// resultStr = new String(md5.digest());byte[] b = md5.digest();for (int i = 0; i < b.length; i++) {char[] digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8','9', 'A', 'B', 'C', 'D', 'E', 'F' };char[] ob = new char[2];ob[0] = digit[(b[i] >>> 4) & 0X0F];ob[1] = digit[b[i] & 0X0F];resultStr += new String(ob);}return resultStr;} catch (NoSuchAlgorithmException e) {e.printStackTrace();return null;}}/** 方法名称:mdgetSninfo * 功    能:获取信息* 参    数:sn,pwd(软件序列号,加密密码md5(sn+password))* */public String mdgetSninfo() {String result = "";String soapAction = "http://entinfo.cn/mdgetSninfo";String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";xml += "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";xml += "<soap:Body>";xml += "<mdgetSninfo xmlns=\"http://entinfo.cn/\">";xml += "<sn>" + sn + "</sn>";xml += "<pwd>" + pwd + "</pwd>";xml += "<mobile>" + "" + "</mobile>";xml += "<content>" + "" + "</content>";xml += "<ext>" + "" + "</ext>";xml += "<stime>" + "" + "</stime>";xml += "<rrid>" + "" + "</rrid>";xml += "<msgfmt>" + "" + "</msgfmt>";xml += "</mdgetSninfo>";xml += "</soap:Body>";xml += "</soap:Envelope>";URL url;try {url = new URL(serviceURL);URLConnection connection = url.openConnection();HttpURLConnection httpconn = (HttpURLConnection) connection;ByteArrayOutputStream bout = new ByteArrayOutputStream();bout.write(xml.getBytes());byte[] b = bout.toByteArray();httpconn.setRequestProperty("Content-Length", String.valueOf(b.length));httpconn.setRequestProperty("Content-Type","text/xml; charset=gb2312");httpconn.setRequestProperty("SOAPAction", soapAction);httpconn.setRequestMethod("POST");httpconn.setDoInput(true);httpconn.setDoOutput(true);OutputStream out = httpconn.getOutputStream();out.write(b);out.close();InputStreamReader isr = new InputStreamReader(httpconn.getInputStream());BufferedReader in = new BufferedReader(isr);String inputLine;while (null != (inputLine = in.readLine())) {Pattern pattern = Pattern.compile("<mdgetSninfoResult>(.*)</mdgetSninfoResult>");Matcher matcher = pattern.matcher(inputLine);while (matcher.find()) {result = matcher.group(1);}}return result;} catch (Exception e) {e.printStackTrace();return "";}}/** 方法名称:mdgxsend * 功    能:发送个性短信 * 参    数:mobile,content,ext,stime,rrid,msgfmt(手机号,内容,扩展码,定时时间,唯一标识,内容编码)* 返 回 值:唯一标识,如果不填写rrid将返回系统生成的*/public String mdgxsend(String mobile, String content, String ext, String stime,String rrid, String msgfmt) {String result = "";String soapAction = "http://entinfo.cn/mdgxsend";String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";xml += "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";xml += "<soap:Body>";xml += "<mdgxsend xmlns=\"http://entinfo.cn/\">";xml += "<sn>" + sn + "</sn>";xml += "<pwd>" + pwd + "</pwd>";xml += "<mobile>" + mobile + "</mobile>";xml += "<content>" + content + "</content>";xml += "<ext>" + ext + "</ext>";xml += "<stime>" + stime + "</stime>";xml += "<rrid>" + rrid + "</rrid>";xml += "<msgfmt>" + msgfmt + "</msgfmt>";xml += "</mdgxsend>";xml += "</soap:Body>";xml += "</soap:Envelope>";URL url;try {url = new URL(serviceURL);URLConnection connection = url.openConnection();HttpURLConnection httpconn = (HttpURLConnection) connection;ByteArrayOutputStream bout = new ByteArrayOutputStream();bout.write(xml.getBytes());byte[] b = bout.toByteArray();httpconn.setRequestProperty("Content-Length", String.valueOf(b.length));httpconn.setRequestProperty("Content-Type","text/xml; charset=gb2312");httpconn.setRequestProperty("SOAPAction", soapAction);httpconn.setRequestMethod("POST");httpconn.setDoInput(true);httpconn.setDoOutput(true);OutputStream out = httpconn.getOutputStream();out.write(b);out.close();InputStreamReader isr = new InputStreamReader(httpconn.getInputStream());BufferedReader in = new BufferedReader(isr);String inputLine;while (null != (inputLine = in.readLine())) {Pattern pattern = Pattern.compile("<mdgxsendResult>(.*)</mdgxsendResult>");Matcher matcher = pattern.matcher(inputLine);while (matcher.find()) {result = matcher.group(1);}}return result;} catch (Exception e) {e.printStackTrace();return "";}}/** 方法名称:mdsmssend* 功    能:发送短信 * 参    数:mobile,content,ext,stime,rrid,msgfmt(手机号,内容,扩展码,定时时间,唯一标识,内容编码)* 返 回 值:唯一标识,如果不填写rrid将返回系统生成的*/public String mdsmssend(String mobile, String content, String ext, String stime,String rrid,String msgfmt) {String result = "";String soapAction = "http://entinfo.cn/mdsmssend";String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";xml += "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";xml += "<soap:Body>";xml += "<mdsmssend  xmlns=\"http://entinfo.cn/\">";xml += "<sn>" + sn + "</sn>";xml += "<pwd>" + pwd + "</pwd>";xml += "<mobile>" + mobile + "</mobile>";xml += "<content>" + content + "</content>";xml += "<ext>" + ext + "</ext>";xml += "<stime>" + stime + "</stime>";xml += "<rrid>" + rrid + "</rrid>";xml += "<msgfmt>" + msgfmt + "</msgfmt>";xml += "</mdsmssend>";xml += "</soap:Body>";xml += "</soap:Envelope>";URL url;try {url = new URL(serviceURL);URLConnection connection = url.openConnection();HttpURLConnection httpconn = (HttpURLConnection) connection;ByteArrayOutputStream bout = new ByteArrayOutputStream();bout.write(xml.getBytes());byte[] b = bout.toByteArray();httpconn.setRequestProperty("Content-Length", String.valueOf(b.length));httpconn.setRequestProperty("Content-Type","text/xml; charset=gb2312");httpconn.setRequestProperty("SOAPAction", soapAction);httpconn.setRequestMethod("POST");httpconn.setDoInput(true);httpconn.setDoOutput(true);OutputStream out = httpconn.getOutputStream();out.write(b);out.close();InputStreamReader isr = new InputStreamReader(httpconn.getInputStream());BufferedReader in = new BufferedReader(isr);String inputLine;while (null != (inputLine = in.readLine())) {Pattern pattern = Pattern.compile("<mdsmssendResult>(.*)</mdsmssendResult>");Matcher matcher = pattern.matcher(inputLine);while (matcher.find()) {result = matcher.group(1);}}return result;} catch (Exception e) {e.printStackTrace();return "";}}
}

一、普通群发短信mdsmssend

参数名称

说明

是否必须有值

备注

sn

软件序列号

格式XXX-XXX-XXX-XXXXX

pwd

密码

md5(sn+password) 32位大写密文

mobile

手机号

必填(支持10000个手机号,建议<=5000)多个英文逗号隔开

Content

内容

支持长短信(详细请看长短信扣费说明),URLUTF8编码

Ext

扩展码

例如:123(默认置空)

stime

定时时间

例如:2010-12-29 16:27:03(置空表示立即发送)

Rrid

唯一标识

最长18位,支持数字。

msgfmt
内容编码
0:ASCII串。3:短信写卡操作。4:二进制信息。空或15:含GB汉字

函数返回值:String(唯一标识,即当前发送短信批次的唯一标识,和rrid对应,如为空则返回系统生成的rrid)

sn即您注册时的序列号,pwd需要MD5(SN+pwd)加密,取32位大写。

接口地址:http://sdk.entinfo.cn:8061/webservice.asmx?op=mdsmssend

示例1

SN= SDK-SSD-010-00001

PWD=3B5D3C427365F40C1D27682D78BB31E0

Mobile:139***404,138***213…………….

Content:测试

Ext: ""

Stime: ""

Rrid: ""

输出结果:

XML格式:

具体Java调用实现:

package com;
import java.io.UnsupportedEncodingException;
import java.net.*;
public class Demo_Client{public static void main(String[] args) throws UnsupportedEncodingException{String sn="SDK-BBX-XXX-XXXXX";String pwd="******";Client client=new Client(sn,pwd);//短信发送    String content=URLEncoder.encode("张三您好,您本月实发工资3999元。[雷雨科技]", "utf8");String result_mt = client.mdsmssend("18636924700", content, "", "", "", "");System.out.print(result_mt);}
}

二、个性群发短信mdgxsend

参数名称

说明

是否必须 有值

备注

Sn

软件序列号

格式XXX-XXX-XXX-XXXXX

pwd

密码

md5(sn+password)32位大写密文

mobile

手机号

必填(建议一次最多提交1000个)

Content

内容

内容通过小逗号与手机号一一对应好URLUTF8编码

Ext

扩展码

例如:123(默认置空)

Stime

定时时间

例如: 2010-12-30 9:23:20(置空表示立即发送)

Rrid

唯一标识

最长18位

msgfmt

内容编码

0:ASCII串。3:短信写卡操作。4:二进制信息。空或15:含GB汉字

函数返回值:String (唯一标识,即当前发送短信批次的唯一标识,和rrid对应,如为空则返回系统生成的rrid,此处的rrid和mdsmssend发送的rrid用法相同,此方法用于发送多条内容不相同手机号不同多个的情况)

接口地址:http://sdk.entinfo.cn:8061/webservice.asmx?op=mdgxsend

示例1

SN= SDK-SSD-010-00001

PWD=3B5D3C427365F40C1D27682D78BB31E0

Mobile:139***404,138***213…………….

Content:测试,测试…………….

Ext: ""

Stime: ""

Rrid: ""

输出结果:

XML格式:

具体Java调用实现:

package com;
import java.io.UnsupportedEncodingException;
import java.net.*;
public class Demo_Client
{public static void main(String[] args) throws UnsupportedEncodingException{String sn="SDK-BBX-XXX-XXXXX";String pwd="******";Client client=new Client(sn,pwd);//个性短信发送String result_gxmt = client.mdgxsend("18636924700,18636800125", "张三您好,您本月实发工资3999元。[雷雨科技],李四您好,您本月实发工资4999元。[雷雨科技]", "", "", "", "");System.out.print(result_gxmt);}
}

二、webservice返回集合对照表:

返回值

返回值说明

问题描述

-2

帐号/密码不正确

1.序列号未注册2.密码加密不正确3.密码已被修改4.序列号已注销

-4

余额不足支持本次发送(或者修改密码长度不正确)

余额不足(或者修改密码长度不在6位到10位之间)

-5

数据格式错误

只能自行调试了。或与技术支持联系

-6

参数有误

看参数传的是否均正常,请调试程序查看各参数

-7

权限受限

该序列号是否已经开通了调用该方法的权限

-8

流量控制错误

-9

扩展码权限错误

该序列号是否已经开通了扩展子号的权限,把ext这个参数置空。

-10

内容长度长

单字节不能超过1000个字符,双字节不能超过500个字符

-11

内部数据库错误

-12

序列号状态错误

序列号是否被禁用

-14

服务器写文件失败

-17

没有权限

如发送彩信仅限于SDK3

-19

禁止同时使用多个接口地址

每个序列号提交只能使用一个接口地址

-20

相同手机号,相同内容重复提交

-22

Ip鉴权失败

提交的IP不是所绑定的IP

-23

缓存无此序列号信息

-601

序列号为空,参数错误

-602

序列号格式错误,参数错误

-603

密码为空,参数错误

-604

手机号码为空,参数错误

-605

内容为空,参数错误

-606

ext长度大于9,参数错误

-607

参数错误 扩展码非数字

-608

参数错误 定时时间非日期格式

-609

rrid长度大于18,参数错误

-610

参数错误 rrid非数字

-611

参数错误 内容编码不符合规范

-623

手机个数与内容个数不匹配

-624

扩展个数与手机个数数

-644

rrid个数与手机个数不一致

注:以上返回值针对个别方法.请具体参看每个用到方法的详细说明。

三、附加说明:

1.接口地址:

常用接口地址:http://sdk.entinfo.cn:8060/webservice.asmx (一般调用)

多线程接口地址:http://sdk.entinfo.cn:8061/webservice.asmx (java、andriod使用)

2.其它说明:

(1)开发使用的帐号必须为SDK开头,如SDK-SSD-010-00001,帐号第一次需要调用Register方法注册一次.仅需注册一次即可,信息必须真实

(2)UnRegister与Register配合使用, 连续使用不得超过10次/天;

(3)群发推荐使用接口方法 mt或者mdSmsSend (仅方法名不同);

3. 郑重声明:

(1)禁止相同的内容多个手机号连续一条一条提交. 否则禁用帐号,由此带来损失由客户自行负责.

(2)请客户提供外网服务器IP以便于绑定IP发送,提高账号的安全性!

(3)在程序里最好有配置文件,程序自动判断当某个接口连接超时提交速度变慢时.程序可以自动切换其它的接口以下是推荐的几个服务器,仅接口地址不同而已.方法全部相同;

地址1:http://sdk.entinfo.cn:8060/webservice.asmx

地址2:http://sdk2.entinfo.cn:8060/webservice.asmx

这些地址都是标准的webservice地址,C#,Java客户可以按照自己熟悉的方式去解析String

或者

地址1:http://sdk.entinfo.cn:8060/webservice.asmx?wsdl

地址2:http://sdk2.entinfo.cn:8060/webservice.asmx?wsdl

四、示例Demo源代码下载:

DEMO  SDK通用版接口文档  所有下载

Java短信接口开发经验及具体开发实现相关推荐

  1. java短信接口源码_java免费短信接口开发源码

    java免费短信接口开发源码 更多 作者:捷信通来源:www.jiexintong.cn日期:2014-07-30 17:08:51 微宏捷信通短信接口提供适应C#.Java..NET等多种主流开发语 ...

  2. java短信接口发送的这三种短信,你收到过几种?

    不同的行业应用java短信接口的用途不一样,但大多数都是用于传递消息.加强服务.提高安全性,因而一般情况下java短信接口会发送通知类短信.问候类短信.营销类短信及广告类短信,具体的让我们一起来了解下 ...

  3. java短信接口demo_java开发调用短信接口demo(动力思维乐信)

    下面为大家分享的是动力思维乐信在java开发下的demo核心代码,完整代码请点击下载:http://www.lx598.com/api/sdk2.0_java.zip 推荐阅读: 动力思维乐信短信接口 ...

  4. java短信接口_java调用短信接口代码

    原标题:java调用短信接口代码 短信接口被广泛应用在网站.app应用以及软件系统中,如用户注册.密码找回.会员服务.系统消息通知等应用场景,那么如何调用短信接口呢?下面以java开发语言为例,为大家 ...

  5. JAVA短信接口代码,实现发送短信验证码

    短信验证码被广泛应用在网站.app应用中的用户注册.密码找回等场景,那么如何实现发送短信验证码?下面以java开发语言为例,秒赛平台小编为大家分享想调用短信接口的代码. package test; i ...

  6. java短信接口 调用_带你了解短信接口的调用

    查看接口说明 image.png 注册账号 注册成功的页面如下: image.png 设置短信内容的签名 比如:将短信签名设置为yzc image.png 查取短信接口密钥 image.png 设计J ...

  7. java网站短信接口_网云JAVA短信接口API

    final String userName = "注册用户名"; final String key = "接口鉴权KEY"; final String mobi ...

  8. java短信接口-单条短信接口

    单条短信接口 此接口为客户发送单条短信提供支持 接入指导 步骤一:登录亿美软通官网 步骤二:注册并获取客户标识(AppId)和客户密钥(secretKey)账号 步骤三:参照接口文档和DEMO,对接接 ...

  9. java短信接口_短信接口-- java

    客户接口部分提供https 和 WebService(目前只支持提交短信) 方式的接口,客户可以根据需求选择相应接口,接口编码方式默认采用UTF-8 发送规则: 同一个号码,发送内容带有(验证码),3 ...

最新文章

  1. 何晓冬:做科研与其各拿十块“铜牌”,不如合力做一块“金牌”
  2. 吴志强院士:CIM与城市未来
  3. Vivado2018如何与Notepad++关联?
  4. scrapy爬虫框架
  5. java异常_Java的异常体系
  6. linux 统计日志最多的ip,统计nginx日志里访问次数最多的前十个IP
  7. linux 文件与进程
  8. boost::hana::basic_type用法的测试程序
  9. 军转干部计算机测试题,2015福建军转干考试计算机基础知识:计算机网络
  10. android开发学习之路——连连看之游戏逻辑(五)
  11. Java_01_Java读取Properties
  12. 如何在SAP Business by design的UI上扩展新的按钮
  13. 抢鲜体验.NET6 Preview1,配上Docker简直停不下来!
  14. 社群扫码进群活码引流完整运营源码/对接免签约支付接口/推广正常绑定下级
  15. 数据结构与算法之六堆排序
  16. Android 解决EditText和ScrollView的滚动冲突
  17. 旧板与IO板之间的连接
  18. common.css
  19. Java代码生成器原理和编写
  20. VUE+Django项目编写

热门文章

  1. 哪款无线蓝牙运动耳机比较好、口碑最好的蓝牙运动耳机
  2. 适用程序员的七夕表白大全,总有一款适合你!
  3. Linux系统日检常见问题,linux系统维护常见错误记录
  4. 正向代理tinyproxy应用在springboot项目上
  5. 使用redis存储用户的浏览记录
  6. 全球治理指标WGI(1996-2018年)
  7. 【网络】路由、交换机、集线器、DNS服务器、广域网/局域网、端口、MTU
  8. 室内指纹定位误差计算方法
  9. 2017TEI环太湖电子竞技邀请赛已于日前正式荣誉开战!
  10. 如何为 Azure 和 Office 365 设置自助服务密码重置