You are on page 1of 7












技术部
2006 年

简介

集团短信二次开发接口介绍:
第一种是标准 __stdcall 定义 dll 可以在 windows 操作系统包括 win98,win2000,winxp 等下被不同语言调用,其中 vc,
delphi,vb 有相应的调用源码.
第二种是标准 url 可以在任何操作系统下被不同语言调用.

第一种 接口函 数说明

1.登录 函数

定义:int SMSLogin (char* user,char *pwd)


参数说明:
user: 登录用户名
pwd: 登录密码
return :登录成功返回一个 SessionID。
返回值例表:
值 说明
>0 登录成功返回一个 SessionID
-2 用户名错
-3 口令错误
-4 暂停服务
-5 试用期限已过
-6 服务器忙
-100 重复登录
-101 用户不能为空白
-102 密码不能为空白
-103 SendExit 或 SMSLogout 还没有退出完请重新调用
或调用退出函数后等待 15 秒再来登录.
其它<=0 未知错误

例: SendLogin(”9888”,”abcd”);
注:在程序启动时登录成功后就不用登录!因为 dll 会在断网时自动重连

2.发送 函数

定义: int SMSSend (char *source, char *mobile, char *message ,


char *serverID,char *linkID,int send_id,
char *sendtime,char formart)
参数说明:
source:源号码
mobile:发送目标的手机号码
message:发送内容(注:小于 70 字符)
serverID 保留(填空)
linkID 保留(填空)
send_id:发送 ID(每次不同)
sendtime: 发送时间,NULL 立即发送
formart: 保留(填 15 整数)
return : 发送成功返回 send_id
返回值例表:
值 说明
>0 正在发送 send_id 可以继续提交
-1 正在连接要等待 2 秒重新提交
-2 缓冲满请重新提交
-3 数据共享冲突请重新提交
-4 手机号长度大于 20 个字符请修改重新提交
-5 手机号长度小于 10 个字符请修改重新提交
-6 手机号不合法请修改重新提交
-7 源号码长度大于 20 个字符请修改重新提交
-8 源号码长度小于 5 个字符请修改重新提交
-9 源号码不合法请修改重新提交
-10 内容超长请修改重新提交
-11 sendtime 不合法请修改重新提交
-12 源端口错误请修改重新提交
-13 sendtime 长度大于 20 个字符
-14 send_id<=0 错误请修改 send_id 重新提交
-15 内容为空
其它<=0 未知错误不要提交这条

例:
1.立即发送:SMSSend(” 020009888212”,”13119560606”,”test”, "","",78871,””,15);
2.定时发送:SMSSend(” 020009888212”,”13119560606”,”test”, "","",78871,”20051216120100”,15);
3.接收 上行和 状态报 告函数

定义: DWORD SMSDeliver_ReportCallBack(Deliver_Report *Func)


参数说明:
func:回调函数地址
return: 状态

func 函数定义
void CallBackFun (int ret_type, char *param1, char * param2, char * param3,
char * param4, char * param5, char * param6, char * param7); //回调函数类型定义
参数说明:
当 type=1 正常上行 param1--- param7 说明
param1 Param2 Param3 Param4 Param5 Param6 Param7
手机号码 端口号 内容 保留 保留 保留 保留

当 type=2 状态报告 param1--- param7 说明


param1 Param2 Param3 Param4 Param5 Param6 Param7
发送 ID 发送状态 保留 保留 保留 保留 保留
0 成功
其它:失败

注:
1.如果 10 小时都没有发短信时 dll 会每 5 小时检测一次是否连接如果断开会重新连接,才收到断开期间的短信。所以
客户不用做重新连接 .(在系统 10 小时没有发送时接收上行最长是 5 小时后收到),如果有小于 5 小时的特殊需要可以自
己调用 SMSSend("","93800000000","re_connect","","",time(NULL),"",15);来加快检测连接。
2.多个客户用同一个帐号登录时发送和接收状态报告是正常但上行会出现一边收不到上行。

4.查询 可用条 数函数

定义: int GetNumber ()


参数说明:
return: 返回可用条数
返回值例表:
值 说明
>=0 可用条数
-1 查询失败或无条数限制
–2 查询失败
其它 保留

注:
如果 10 小时都没有发短信时 dll 会每 5 小时检测一次是否连接如果断开会重新连接,才收到断开期间的短信。所以客户
不用做重新连接 .(在系统 10 小时没有发送时接收上行最长是 5 小时后收到 ),如果有小于 5 小时的特殊需要可以自己调
用 SMSSend("","93800000000","re_connect","","",time(NULL),"",15);来加快检测连接。
5.修改 密码函 数

定义:int ChangePWD(char *old_pwd,char *new_pwd)


参数说明:
old_pwd 旧密码
new_pwd 新密码
return :返回修改状态
返回值例表:
值 说明
0 修改成功
-1 没有登录
3 旧密码错
其它 修改失败

注:
如果 10 小时都没有发短信时 dll 会每 5 小时检测一次是否连接如果断开会重新连接,才收到断开期间的短信。所以客户
不用做重新连接 .(在系统 10 小时没有发送时接收上行最长是 5 小时后收到 ),如果有小于 5 小时的特殊需要可以自己调
用 SMSSend("","93800000000","re_connect","","",time(NULL),"",15);来加快检测连接。time(NULL)是发送时间的整数.

7.注销 函数

定义: int SMSLogout ()


参数说明:
return: 返回状态
返回值例表:
值 说明
0 成功
其它 失败
第二种 接口说 明

1.发送 URL

http://211.155.23.205/isapi.dll?SendSms&AgentID=900710&PassWord=abc1&phone=13119560606&msg=bhello&sendtime=0
参数说明:
AgentID: 登录用户名
PassWord: 登录密码
phone : 发送目标的手机号码
可以同时对 10 个手机进行发送用分号隔开
例:”1319560606;13119560607;”
msg: 发送内容(注:小于 70 字符)
sendtime:定时发送时间,格式 YYYYMMDDHHMMSS,0 为立即送
返回值:中文说明

2.查询 可用条 数 URL

http://211.155.23.205/isapi.dll?GetNumber&AgentID=900710&PWD=abc
参数说明:
AgentID: 登录用户名
PWD: 登录密码
返回值例表:
值 说明
>=0 可用条数
-1 无条数限制
–2 查询失败
其它 保留

3.最新 上行回 复 URL

http://211.155.23.205/isapi.dll?SMSDeliver&AgentID=900710&pwd=abc1
参数说明:
AgentID: 登录用户名
pwd: 登录密码
格式:
20060713101626##13826466982##测试120;;20060713101626##13826466984##测试121;;
##表示一条短信内分段(时间##上行手机##内容)
;;表示多条短信分隔
set.ini 说明

LOGIN_IP=211.155.23.203 登录服务器地址
LOGIN_PORT=9018 登录服务器端口
SEND_IP=211.155.23.203 发送服务器地址
SEND_PORT=9009 发送服务器端口
REC_IP=211.155.23.203 上行服务器地址
REC_PORT=9010 上行服务器端口
MAX_send_queue_count=100 发送最大队列数
MAX_send_rec_queue_count=10 上行最大队列数
ReSend_Count=2 发送失败重复发送数
ReSend_Time=60 每次重发间隔时间单位为 s
LOG_BUF=4096 写日志的缓冲数单位为字节
ProxyServer=192.168.0.139 代理服务器,空时为没有代理服务器
ProxyPort=1080 代理端口
Sock5UserName= 代理登录名
Sock5Pass= 代理登录密码
把 set.ini 放到 third_gw.dll 同一目录,如果要日志可以在 third_gw.dll 所在目录下建一个 log 目就可以
日志格式”日期+txt”例:”20050602.txt”

日志说明:
2006-07-13 12:59:48 数据输入:source=02000999907,mobile=53119560606,message=测试,send_id=0,sendtime=
这是程序调用 dll SMSSend 函数时的输入参数.当登录成功后日志文件有这记录时说明调用没有问题。
收不到短信的原因有
1. 不能上网或 telnet 211.155.23.203 9018 失败
2. 密码改动后没有重新登录
3. 没有足够条数
4. 手机或内容被移动屏蔽