《短信平台接口说明.doc》由会员分享,可在线阅读,更多相关《短信平台接口说明.doc(29页珍藏版)》请在三一办公上搜索。
1、短信平台接口说明第1章 基本约定 第1节 基本术语:前台流水号:前台流水号就是发送短信上送的批次号,一般在私有字段里面。后台流水号:后台流水号是当提交成功之后短信平台返回给前端的流水号,此流水号在短信的所有业务中都是唯一的。(1) 上送文件格式以一行为一条短信数据.(2) 提交成功之后,返回报文的分隔符为”:”.(3) 群发短信手机号码之间采用的分隔符为”,”.(4) 私有字段的分隔符采用”$”(5) 非明确说明的,分隔符都采用”|”. 第2节 基本原理及提交成功返回短信平台基本原理如下所示:提交成功有文件类和单条短信返回:(1) 单条短信单条短信返回的格式为:|respcode 0000|
2、respmsg发送成功| frountID前台流水号| backofficeID后台流水号|其中前台流水号为发送时前台请求时上送的批次号,后台流水为短信平台后台的流水号.Webservice返回定义:Key描述Valuerespcode返回码respmsg返回信息frountID前台流水号backofficeID后台流水号(2) 文件请求文件格式的报文返回为:|respcode0000|respmsg发送成功|frountID前台文件批次号| frontfilename前台文件名| backofficeID后台文件批次号| 其中后台文件序列号由短信平台生成.Webservice返回定义:Key
3、描述Valuerespcode返回码respmsg返回信息frountID前台文件批次号frontfilename前台文件名backofficeID后台文件批次号 第3节 TCP接口必须要传送报文头报文头的定义如下:含义位置长度类型属性说明报文域长度04xM报文体长度流水号4路由号4第一个为报文域长度,其中包含整个报文头的12字节。第二个为流水号,可以传定值1第三个是路由号,传8十六进制例子表示如下:33 00 00 00 01 00 00 00 08 00 00 00 7c 39 39 39 39 7c 7c 31 33 33 32 33 35 39 31 36 33 38 7c b6 cc
4、 cf fb cf a2 b2 e2 ca d4 b7 a2 cb cd d0 c5 cf a2 7c 5e 定义的结构体typedef structunsigned int uiPacketLength; /包长,包含包头长度的总长度unsigned int uiSequenceID; /标识包的唯一ID,由客户端填写unsigned int CommandID; /路由号,一般固定为8或与短信平台协商MSG_HEADER_T;第2章 WebService接口说明提供两个类型的方法给调用即:单条发送方法,群发SERVICEURL:http:/指定IP地址:端口 / SMSWebService
5、.asmxSERVICENAME: SMSWebService 第1节 单条发送方法短信串的具体内容如下:|短信发送交易码|私有字段|手机号码|发送信息|其中短信交易码为9999.私有字段定义:短信类型$发送人(部门)$提交人$业务类型$提交时间$开始日期$开始时间$结束日期$结束时间$批次号$是否需要回执$其中,开始日期、开始时间、结束日期、结束时间不定义(置空)则立即发送例如: 6$XD$3$20090907102700$20090907$102700$20090907$205959$0907123456$ 短信类型为6,7,其中6为信贷系统日间短信,7为信贷系统日终短信.业务类型为2,人
6、工定制短信.例如:|tranCode9999|SMSType6|DepartmentXD|Sender6221|Bussinesstype1|Sendtime20100514134500|Begindate20100514|BeginTime080101|Enddate20100514|Endtime205959|SerioNo1253535|Isback1|mobile18602045546|content信贷系统短信测试|具体描述:Key描述ValuetranCode短信发送交易码9999SMSType短信类型6Department发送人(部门)XDSender提交人Bussinessty
7、pe业务类型1Sendtime提交时间Begindate开始日期BeginTime开始时间Enddate结束日期Endtime结束时间SerioNo批次号Isback是否需要回执mobile手机号码content发送信息/ / 单条发送短信(标准版)/ / 短信串/ 返回-1:数据库操作失败;0:数据没更新:大于0:正确public int SendSMS(string content) 第2节 群发(一笔最大条数1000,TCP方式一次最多20)短信串的具体内容如下:|短信发送交易码|私有字段|手机号码串|发送信息|群发短信分隔符|其中短信交易码为9996.私有字段定义:短信类型$发送人(部
8、门)$提交人$业务类型$提交时间$开始日期$开始时间$结束日期$结束时间$批次号$是否需要回执$其中,开始日期、开始时间、结束日期、结束时间不定义(置空)则立即发送,分隔符为空,则默认”,”作为分割符.例如: 6$XD$3$20090907102700$20090907$102700$20090907$205959$0907123456$ Key描述ValuetranCode短信发送交易码9996SMSType短信类型6Department发送人(部门)XDSender提交人Bussinesstype业务类型1Sendtime提交时间Begindate开始日期BeginTime开始时间Endd
9、ate结束日期Endtime结束时间SerioNo批次号Isback是否需要回执mobile手机号码content发送信息separator群发短信手机号码分隔符/ / 群发短信(标准版)分隔符是“,”/ / 短信串/ 返回-1:数据库操作失败;0:数据没更新:大于0:正确public int SendMoreSMS(string content) 第3章 文件群发接口 第1节 通讯接口文件接口的目的是当客户端需要通过文件发送短信的时候,首先通过WebService或者TCP/IP告知短信平台要发送文件.文件传送采用FTP和TCP/IP的方式.具体如下:1. WebService接口.短信串的
10、具体内容如下:|短信发送交易码|私有字段|文件类型|文件名|其中短信交易码为9995.私有字段定义:短信类型$发送人(部门)$提交人$业务类型$提交时间$开始日期$开始时间$结束日期$结束时间$批次号$是否需要回执$发送文件时,批次号为前台上送的文件批次号例如:|tranCode9995|SMSType6|DepartmentXD|Sender6221|Bussinesstype1|Sendtime20100514134500|Begindate20100514|BeginTime080101|Enddate20100514|Endtime205959|SerioNo1253535|Isbac
11、k1|Filetypetxt|Filenametemp.txt|Key描述ValuetranCode短信发送交易码9995SMSType短信类型6Department发送人(部门)XDSender提交人Bussinesstype业务类型1Sendtime提交时间Begindate开始日期BeginTime开始时间Enddate结束日期Endtime结束时间SerioNo批次号Isback是否需要回执Filetype文件类型Filename文件名/ / / / 短信串/ 返回-1:数据库操作失败;0:数据没更新:大于0:正确public int SendMoreSMS(string conten
12、t)返回报文:|respcode0000|respmsg发送成功|frountID5|frontfilenametemp.txt|backofficeID|2. TCP/IP接口短信串的具体内容如下:|短信发送交易码|私有字段|文件类型|文件名|其中短信交易码为9995.私有字段定义:短信类型$发送人(部门)$提交人$业务类型$提交时间$开始日期$开始时间$结束日期$结束时间$批次号$是否需要回执$发送文件时,批次号为上送的文件批次号如:00$HX$8001$0$20090907102700$20090907$102700$20090907$205959$0907123456$1$ 第2节 文
13、件传输接口文件传输接口的方式有以下两种,其中一种为通过Socket传输文件流的方式,另外一种就是FTP方式,文件最大为20M.文件内部每条短信的定义如下:|序列号|手机号码|内容|(1) SOCKET传输文件流的方式暂时不支持(2) FTP方式当短信平台收到发送文件类型的短信之后,通过FTP双方约定的目录获取文件,然后解析文件开始发送.第4章 数据库的接口接口模式:采用数据库模式数据库版本:SQL SERVER 2000实现原理:直接把数据插入到短信数据库(call)的短信提交表(SMS_REQUEST),通过短信平台发出,提交之前需要先通过NextValue方式获取内部流水号。短信提交表的建
14、表语句和字段说明:CREATE TABLE SMS_REQUEST(SMSIDint IDENTITY (1, 1) NOT NULL , PRIORITY INT NOT NULL DEFAULT 0, -优先级,默认0:最低BATCHNOVARCHAR(16), -批次号SUMMITTIMEVARCHAR(14), -提交时间BEGINSETDATEVARCHAR(8), -设置发送日期BEGINSETTIME VARCHAR(6), -设置发送时间ENDSETDATEVARCHAR(8), -设置发送日期ENDSETTIME VARCHAR(6), -设置结束时间SMSTYPEVARCH
15、AR(4), -短信类型DEPARTMENTVARCHAR(4), -业务部门BUSSNIESSTYPEVARCHAR(4), -业务类型TELEPHONEVARCHAR(18), -手机号码CONTENTVARCHAR(1024), -短信内容)插入数据说明:不必填写SMSID。必须填写的字段包括:提交时间(SUMMITTIME),设置开始发送日期(BEGINSETDATE),设置开始发送时间(BEGINSETTIME),设置结束发送日期(ENDSETDATE),设置结束发送时间(ENDSETTIME),短信类型(SMSTYPE),手机号码(TELEPHONE),短信内容(CONTENT)其
16、中提交时间一般是取当前时间就可以了,短信类型固定填写3。第5章 Socket接口说明 第1节 原理图银行后台CommGW,负责与短信平台的客户端通信、重发机制等EMG短信网关,与移动、联通、固网的协议接口银行后台或其他短信平台的客户端通过与CommGW接口实现短信发送的功能。 第2节 交易格式支持不可变和可变两种交易格式。9999交易是简单的不可变格式的方式,仅需把号码和信息完整内容发出即可;9998交易或其他自定义的交易,是可转化格式的方式,可由银行后台与短信平台做出字段约定,并对多个字段做转化处理,拼接成完整的短信内容。5.2.1 内容不可变得简单格式的交易交易请求格式:|9999|pri
17、vatedata|mobileno|context|9999|私有字段|手机号码|发送信息|注:私有字段一般为空即可若需要,请参照以下定义.私有字段定义:短信类型$发送人(部门)$提交人$业务类型$提交时间$开始日期$开始时间$结束日期$结束时间$批次号$是否需要回执$其中,开始日期、开始时间、结束日期、结束时间不定义(置空)则立即发送例如: 6$XD$3$20090907102700$20090907$102700$20090907$205959$0907123456$如:|9999|6$XD$5031$3$20090907102700$20090907$102700$20090907$20
18、5959$0907123456$1|13309591155|您尾号6002单位帐号于09:04转出人民币2,001.00元,余额791,053.83元。24小时服务热线:96558。|5.2.2 可转换信息格式的交易交易请求格式如下:|9998|privatedata|account|briefcode|tradeflag|trandate|tranamount|amountflag|currency|mobileno|name|gender|context|businesscode|9998|附加信息|卡号|交易类型|交易标志|交易日期时间|交易金额|交易金额符号|币种|手机号码|姓名|性别
19、|发送信息|业务代码|如:|9998|6224280002510100|7000|O|0621090041|500.00|-|156|13895178777|王锋|LC|字段里的内容可根据短信平台的客户端与短信平台协商说明,可参考shortmessage.ini。亦可自定义其他交易。 第3节 通讯协议短信平台与银行后台采用TCP协议短连接方式。报文具体格式如下:5.3.1 短信平台的请求报文5.3.1.1 描述含义位置长度类型属性说明报文域长度04xM报文体长度流水号4路由号4第一个为报文域长度,其中包含整个报文头的12字节。第二个为流水号,可以传定值1第三个是路由号,传8十六进制例子表示如下
20、:33 00 00 00 01 00 00 00 08 00 00 00 7c 39 39 39 39 7c 7c 31 33 33 32 33 35 39 31 36 33 38 7c b6 cc cf fb cf a2 b2 e2 ca d4 b7 a2 cb cd d0 c5 cf a2 7c 5e 定义的结构体5.3.1.2 报文头typedef structunsigned int uiPacketLength; /包长,包含包头长度的总长度unsigned int uiSequenceID; /标识包的唯一ID,由客户端填写unsigned int CommandID; /路由号,
21、一般固定为8或与短信平台协商MSG_HEADER_T;5.3.1.3 报文体typedef structchar CommandData1; /交易请求字符串,此处不固定长度具体见5.2.1MSG_REQUEST_T;5.3.2 短信平台的应答报文5.3.2.1 描述返回的例子:0000:发送成功5.3.2.2 报文头typedef structunsigned int uiPacketLength; /包长,包含包头长度的总长度unsigned int uiSequenceID; /标识包的唯一ID,由客户端填写MSG_HEADER_T;5.3.2.3 报文体typedef structin
22、t Status; /包状态,0表示发送成功,非0表示出错无法发送char ResultData1; /响应包数据,此处不固定长度MSG_RESPONSE_T;第6章 短信回执接口说明短信回执接口是当客户端需要短信回执的时候,由客户端主动发起获取短信回执的交易,短信平台通过查询相应的短信回执.回执接口查询支持WebService和Tcp/ip两种类型的接口.其中WebService仍然采用短信串的方式.Tcp/ip请求和返回的时候需要有报文头.报文头定义如下:含义位置长度类型属性说明报文域长度04xM报文体长度流水号4路由号4 第1节 单条短信查询(1) 请求报文短信格式如下:|短信发送交易码
23、|私有字段|后台流水号|其中短信交易码为9994.私有字段定义:短信类型$发送人(部门)$提交人$业务类型$批次号$后台流水号为提交成功时返回的后台流水号.批次号为各业务部门发送短信时上送的批次号.Webserivice接口定义如下:例子: |tranCode9994|SMSType6|DepartmentXD|Sender6221|Bussinesstype1|SerioNo1253535|BackID1124366|Key描述ValuetranCode短信发送交易码9994SMSType短信类型6Department发送人(部门)XDSender提交人Bussinesstype业务类型1S
24、erioNo批次号BackID后台流水号(2) 应答报文返回报文的格式如下:|返回码|返回信息|前台流水号|后台流水号|其中前台流水号为发送短信上送的批次号,后台流水号为提交成功时返回的后台流水号.Webserivec接口返回定义如下:例如: |respcode 0000| respmsg发送成功| frountID前台流水号| backofficeID后台流水号|Key描述Valuerespcode返回码respmsg返回信息frountID前台流水号backofficeID后台流水号 第2节 文件类短信查询接口(1) 请求报文短信格式如下:|短信发送交易码|私有字段|文件类型|前台文件名|
25、后台文件序列号|其中短信交易码为9993.私有字段定义:短信类型$发送人(部门)$提交人$业务类型$批次号$其中前台文件名为上送的文件名,后台文件序列号为返回的文件序列号,文件接口批次号填写前台文件WebService接口定义如下:例子:|tranCode9993|SMSType6|DepartmentXD|Sender6221|Bussinesstype1|SerioNo1253535|Filetypetxt|Filenametemp.txt|backofficeID1234567|Key描述ValuetranCode短信发送交易码9993SMSType短信类型6Department发送人(
26、部门)XDSender提交人Bussinesstype业务类型1SerioNo批次号Filetype文件类型Frontfilename前台文件名backofficeID后台文件序列号(2) 应答报文返回报文的格式如下:|返回码|返回信息|前台文件名|后台文件序列号|返回文件名|返回文件名为返回时存储返回信息的文件名称.回执的文件格式如下:|返回码|返回信息|前台序列号|后台序列号|WebService接口定义如下:Key描述Valuerespcode返回码respmsg返回信息Frountfilename前台文件名backofficeID后台文件序列号Backfilename返回文件名第7章
27、短信平台返回码定义短信平台的发送过程包括六种错误码:(1) 外围系统提交过程的错误码(06000699)(2) SMSGW从数据库中获取数据的错误码(05000599)(3) SMSGW发送到EMG的错误码(04000499)(4) EMG提交到运营商的错误码(03000399)(5) EMG提交到运营商之后返回的错误码(02000299)(6) 运营商返回的回执。(00000199)具体返回码定义如下: 第1节 外围系统提交过程的错误码(06000699)错误码错误信息类型后台返回码备注0600提交成功0601提交失败成功与失败是以数据库插入成功为标志的,而不是仅仅收到。0602FTP上文件
28、为空0603发送格式不正确0604报文头不正确0605短信类型不能为空每个接入短信的部门都有自己的业务类型,不能为空0606业务类型不能为空主要保证发送的优先级0607批次号不能为空批次号可以送定值,但是不能送空值,送定值时查询回执需要保留返回的后台流水号0608发送文件时,文件名不能为空0609短信内容为空0610连接数据库失败0611群发短信超过限制群发短信提交的手机号码串最多一千个手机号码。TCP方式为20S001短信服务器错误(DB)S002短信服务器错误(GW)G001未知路由G002网关无响应G003网关类型错误S003报文超长S004报文长度校验错0612手机号码错包括手机号码不
29、符合规定0613操作员受限制或未授权操作员设定的短信数目超限或者无此操作员 第2节 SMSGW从数据库中获取数据的错误码(05000599)错误码错误信息类型后台返回码备注0500获取短信息成功0501SMSGW取数据时连接数据库失败0502手机头没有配置Prefix表中没有配置此手机前三位的头0503此手机号为黑名单0504超过规定的最后发送时间当前时间超过EndDate和EndTime0505超过重发的最大次数重发一般最多30次0506手机号码不合法手机号码不合法,比如手机号码含有字母 第3节 SMSGW发送到EMG的错误码(04000499)错误码错误信息类型后台返回码备注0400发送到
30、EMG成功成功的标志为发送到EMG成功0401发送到EMG失败SMSGW做SendToEMG的时候失败了 第4节 SMSGW提交之后EMG返回的错误码,(03000399)此时提交的错误码是EMG返回的,只有两种值,此时SMSGW会收到消息RespCTI_MAGIC_eRequestService。宏定义如下:#define E_UMS_OK0#define E_UMS_NOACD_CTEMediaSym(0x001)#define E_UMS_TIMEOUT_CTEMediaSym(0x002)#define E_UMS_KEY_ERROR_CTEMediaSym(0x003)#define
31、 E_UMS_MAKECALL_FAILED_CTEMediaSym(0x004)#define E_UMS_SESSION_FULL_CTEMediaSym(0x005)#define E_UMS_SESSION_CONFUSION_CTEMediaSym(0x006)#define E_UMS_SERAIL_SESSION_CTEMediaSym(0x007)#define E_UMS_NOT_SUPPORT_CTEMediaSym(0x008)#define E_UMS_FAILED_CTEMediaSym(0x009)#define E_UMS_WAITING_RESPONSE_CTE
32、MediaSym(0x00A)#define E_UMS_DIRECTLY_GO_CTEMediaSym(0x00B)错误码错误信息类型后台返回码备注0300提交到运营商成功E_UMS_WAITING_RESPONSEMakecall运营商是成功的0301提交到运营商失败SMSGW做SendToEMG的时候失败了0309EMG申请任务的时候失败了E_UMS_FAILEDEMG请求任务的时候失败了,可能此时忙 第5节 EMG提交到运营商之后返回的错误码(02000299)收到的消息 EvtCTI_MAGIC_eServiceCompleted。错误码错误信息类型后台返回码备注0200无错误,命令
33、正确接收0包括联通,移动,电信7.5.1 联通短信(02010299)错误码错误信息类型后台返回码备注0201非法登录,如登录名、口令出错、登录名与口令不符等1联通短信0202重复登录,如在同一TCP/IP连接中连续两次以上请求登录2联通短信0203连接过多,指单个节点要求同时建立的连接数过多。3联通短信0204登录类型错,指bind命令中的logintype字段出错。4联通短信0205参数格式错,指命令中参数值与参数类型不符或与协议规定的范围不符。5联通短信0206非法手机号码,协议中所有手机号码字段出现非86130号码或手机号码前未加“86”时都应报错。6联通短信0207消息ID错7联通短
34、信0208信息长度错8联通短信0209非法序列号,包括序列号重复、序列号格式错误等9联通短信0210非法操作GNS10联通短信0211节点忙,指本节点存储队列满或其他原因,暂时不能提供服务的情况11联通短信7.5.2 移动和电信短信错误码(01010149)错误码错误信息类型后台返回码备注0201消息结构错移动短信0202命令字错移动短信0203消息序号重复移动短信0204消息长度错移动短信0205资费代码错。移动短信0206超过最大信息长移动短信0207业务代码错移动短信0208流量控制错移动短信0209本网关不负责服务此计费号码;移动短信0210Src_Id错误移动短信0211Msg_sr
35、c错误移动短信0212Fee_terminal_Id错误移动短信0213Dest_terminal_Id错误移动短信 第6节 运营商返回的回执。(00000100)收到的消息 CmdRequestEService。错误码错误信息类型后台返回码备注0000已送达0包括联通,移动,电信7.6.1 联通短信回执0021目的地址不可达,指路由表存在路由且消息路由正确但被路由的节点暂时不能提供服务的情况21联通短信0022路由错,指路由表存在路由但消息路由出错的情况,如转错SMG等22联通短信0023路由不存在,指消息路由的节点在路由表中不存在23联通短信0024计费号码无效,鉴权不成功时反馈的错误信息
36、24联通短信0025用户不能通信(如不在服务区、未开机等情况)25联通短信0026手机内存不足26联通短信0027手机不支持短消息27联通短信0028手机接收短消息出现错误28联通短信0029不知道的用户29联通短信0030不提供此功能30联通短信0031非法设备31联通短信0032系统失败32联通短信0033短信中心队列满33联通短信0034其他34联通短信7.6.2 移动和电信返回状态报告错误码错误信息类型后台返回码备注0001短消息转发成功DELIVRD0002短消息超过有效期EXPIRED 0003短消息已经被删除DELETED 0004短消息是不可转发的UNDELIV 0005短消息
37、已经被最终用户接收(为保持与SMPP 兼容,保留)ACCEPTD 0006未知短消息状态UNKNOWN 0007短消息被拒绝(为保持与SMPP 兼容,保留)REJECTD 第8章 附录 第1节 附1: 联通短信回执/SGIP协议的状态报告标记(reportFlag)/0-该条消息只有最后出错时要返回状态报告/1-该条消息无论最后是否成功都要返回状态报告/2-该条消息不需要返回状态报告/3-该条消息仅携带包月计费信息,不下发给用户,要返回状态报告/其它-保留/缺省设置为/ 如果这个消息本身就是回执,那么不需要状态报告发送的应答字段长度(字节)类型说明Result1IntegerSubmit命令是否成功接收。0:接收成功其它:错误码Reserve8Text保留,扩展用表4-18 Submit_Resp消息格式联通的Report信息:字段长度(字节)类型说明SubmitSequenceNumber12Integer该命令所涉及的Submit或deliver命令的序列号ReportType1IntegerReport命令类型0:对先前一条Submit命令的状态报告1:对先前一条前转Deliver命令的状态报告UserNumber21Text接收短消息的手机号,手机号码前加“86”国别标志State1Integer该命令所涉及的短消息的当前执
链接地址:https://www.31ppt.com/p-4142131.html