SP接入API(win32)使用手册

上传人:壹****1 文档编号:511268563 上传时间:2023-05-13 格式:DOCX 页数:9 大小:19.57KB
返回 下载 相关 举报
SP接入API(win32)使用手册_第1页
第1页 / 共9页
SP接入API(win32)使用手册_第2页
第2页 / 共9页
SP接入API(win32)使用手册_第3页
第3页 / 共9页
SP接入API(win32)使用手册_第4页
第4页 / 共9页
SP接入API(win32)使用手册_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《SP接入API(win32)使用手册》由会员分享,可在线阅读,更多相关《SP接入API(win32)使用手册(9页珍藏版)》请在金锄头文库上搜索。

1、SP 接入 API 使用手册1 说明为了降低 SP 接入联通在信系统的难度,加快 SP 接入的速度,傲天公司推出本套SP 接入 API,使用该 API,SP 不用关心网络连接处理,线程掌握和SGIP 协议,只用关心具体的业务流程处理。2 API 构造该 API 以大事驱动的方式工作,调用初试始化函数Startup 后,一系列线程组件开头运行,包括 Submit 发送线程,连接监听线程,Deliver 接收和处理线程等。当 SP 调用 Submit 函数时,Submit 处理线程自动生成Submit 协议包并将该包发送给网关系统, 同时接收网关的Submit Response,假设用户定义了 R

2、esponse 处理函数,则触发 Response大事,调用该函数。当收到网关的 Deliver 或 Report 时,Deliver 处理线程会自动触发相应大事,调用用户定义的业务处理函数。对网关系统的连接治理由API 自动完成。3 变量类型定义C+ :typedef unsigned char UINT_1; typedef unsigned short UINT_2; typedef unsigned int UINT_4;/Deliver 包构造typedef struct deliverstrUINT_4 sequencenumber1; UINT_4 sequencenumber2

3、; UINT_4 sequencenumber3; char usernumber22;char spnumber22;UINT_1 tp_pid;UINT_1tp_udhi; UINT_1messagecoding; UINT_4messagelength; charmessagecontent160;DeliverStr;/Report 包构造typedef struct reportstrUINT_4sequencenumber1; UINT_4sequencenumber2; UINT_4sequencenumber3; charusernumber22; UINT_1state;UI

4、NT_1errcode;ReportStr;/MT Response 构造typedef struct mtrespstrUINT_4 sequencenumber1; UINT_4 sequencenumber2; UINT_4 sequencenumber3; UINT_1 result;MTRespStr;/Submit 错误构造,当Submit 发送不成功时,在Deliver 处理中返回该构造typedef struct mterrorstrUINT_4 sequencenumber1; UINT_4 sequencenumber2; UINT_4 sequencenumber3;IN

5、T_4errortype ;/1:由于连接不上SMG 网关系统,导致包超时 2:发送前觉察该包超时 3:包发送失败且超过重发次数INT_4result;/假设失败是由于对方回了错误的 Response,则 result 中保存错误的 ResponseResult 值,否则是内部的错误码:负值。MTErrorStr;Delphi:/Report 包构造typeReportStr = packed Record sequencenumber1: LongInt; sequencenumber2: LongInt; sequencenumber:LongInt; usernumber: packed

6、 Array0.21 of char; state: char;errcode: char;end;/Deliver 包构造typeDeliverStr = packed record sequencenumber1: LongInt; sequencenumber2: LongInt; sequencenumber3: LongInt; usernumber: packed array0.21 of char; spnumber: packed array0.21 of char; tp_pid: char;tp_udhi: char; messagecoding: char; messag

7、elength: integer;messagecontent: packed array0.159 of char;end;/MT Response 包构造typeMTRespStr = packed record sequencenumber1: LongInt; sequencenumber2: LongInt; sequencenumber3: LongInt; result: char;end;/Submit 错误构造,当Submit 发送不成功时,在Deliver 处理中返回该构造typeMTErrStr = packed record sequencenumber1: LongI

8、nt; sequencenumber2: LongInt; sequencenumber3: LongInt; errortype: integer;end;4 接口函数4.1 Strartupint char*Startup(char*cLocalIp,shortiLocalPort,char*cSmgIp,shortiSmgPort, cLoginName,char*cPassword,intlSocketTimeOut,intlMTTimeOut,int iSrcNode,int lMTThread,int lMaxListNode,int lMTMaxRetryTime,int lMO

9、Thread, void (* fProcessDeliver)(DeliverStr deliver),void (* fProcessReport)(ReportStr report),void (* fProcessResponse)(MTRespStr response), void (*fProcessMTError)(MTErrorStr mterror);该函数是API 的初始化函数,在使用API 前,必需调用该函数参数说明:cLocalIp:本地 IP 地址iLocalPort:本地Socket 监听端口cSmgIp:网关系统 IP cSmgPort:网关系统监听端口cLogi

10、nName:连接网关的用户名cPassword:连接网关的密码lSocketTimeOut:Socket 超时秒lMTTimeOut:Submit 的超时,在超时的时间内,假设该MT 没有成功发送, 则返回错误包,MTErrorStriSrcNode:SP 节点编号lMTThread:Submit 处理线程数lMaxListNode:最大待处理队列节点数lMTMaxRetryTime:Submit 发送失败重试次数lMOThread:Deliver 处理线程数deliver:用户定义的Deliver 处理函数为NULL 时不处理 Deliver 包 report:用户定义的Report 处理函

11、数为NULL 时不处理Report 包 response:用户定义的Submit Response 处理函数为NULL 时不处理SubmitResponse 包mterror:用户定义的错误处理函数为NULL 时不处理错误包返回值:0、已经调用了Startup 1、成功-1、失败4.2 SubmitSP 发送消息时调用该函数,函数的输入参数与SGIP 协议中 Submit 消息包的内容想对应intSubmit(char* spnumber,char* chargenumber, int user_count,char* usernumber, char* corpid,char* servic

12、e_type, UINT_1 fee_type, char* fee_value,参数说明:char* given_value, UINT_1 agent_flag, UINT_1 mo_flag, UINT_1 priority, char* expire_time, char* schedule_time, UINT_1 report_flag, UINT_1 tp_pid, UINT_1 tp_udhi,UINT_1 message_coding, UINT_1 message_type, UINT_4 message_length, char* message_content, cha

13、r* reserve,UINT_4 *sequencenumber1, UINT_4 *sequencenumber2, UINT_4 *sequencenumber3)spnumber:SP 的接入号码ChargeNumber:付费号码user_count:接收手机用户个数usernumber:接收该短消息的手机号,多个号码间以“;”或“,”隔开 corpId:企业代码service_type:业务代码 fee_type:计费类型 fee_value:该条短消息的收费值given_value:赠送用户的话费agent_flag:代收费标志 mo_flag:引起 MT 消息的缘由priorit

14、y:优先级 expire_time:短消息寿命的终止时间schedule_time:短消息定时发送的时间report_flag:状态报告标记tp_pid:GSM 协议类型tp_udhi:GSM 协议类型message_coding:短消息的编码格式message_type:信息类型message_length:短消息内容的长度message_content:短消息的内容reserve:保存sequencenumber1,sequencenumber2,sequencenumber3:短消息序列号,由 API按协议标准生成,并返回返回值:0:队列满1:成功放入队列-1:放入队列失败4.3 Del

15、iver处理函数void (* fProcessDeliver)(DeliverStr deliver)用户自定义的业务处理函数,作为指针传递给Startu。p 留意:该函数必需是线程安全的,其中访问的全局变量必需承受同步机制,假设SP 使用的开发工具为 C+Builder 或 Delphi,对 VCL 的调用可承受发送消息的方式来同步SendMessage 或PostMessage。4.4 Report 处理函数void (* fProcessReport)(ReportStr report) 留意:同上4.5 MT Response 处理函数void (* fProcessResponse)(MTRespStr response) 留意:同上4.6 Cleanupint Cleanup该

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号