106 lines
2.6 KiB
C
106 lines
2.6 KiB
C
// sgip.h
|
||
#ifndef _SGIP_H
|
||
#define _SGIP_H
|
||
typedef unsigned char UINT_1;
|
||
typedef unsigned short UINT_2;
|
||
typedef unsigned int UINT_4;
|
||
typedef int INT_4;
|
||
|
||
//Deliver包结构
|
||
typedef struct deliverstr
|
||
{
|
||
UINT_4 sequencenumber1;
|
||
UINT_4 sequencenumber2;
|
||
UINT_4 sequencenumber3;
|
||
char usernumber[22];
|
||
char spnumber[22];
|
||
UINT_1 tp_pid;
|
||
UINT_1 tp_udhi;
|
||
UINT_1 messagecoding;
|
||
UINT_4 messagelength;
|
||
char messagecontent[160];
|
||
}DeliverStr;
|
||
|
||
//Report包结构
|
||
typedef struct reportstr
|
||
{
|
||
UINT_4 sequencenumber1;
|
||
UINT_4 sequencenumber2;
|
||
UINT_4 sequencenumber3;
|
||
char usernumber[22];
|
||
UINT_1 state;
|
||
UINT_1 errcode;
|
||
}ReportStr;
|
||
|
||
//MT Response结构
|
||
typedef struct mtrespstr
|
||
{
|
||
UINT_4 sequencenumber1;
|
||
UINT_4 sequencenumber2;
|
||
UINT_4 sequencenumber3;
|
||
UINT_1 result;
|
||
}MTRespStr;
|
||
|
||
//Submit错误结构,当Submit发送不成功时,在Deliver处理中返回该结构
|
||
typedef struct mterrorstr
|
||
{
|
||
UINT_4 sequencenumber1 ;
|
||
UINT_4 sequencenumber2 ;
|
||
UINT_4 sequencenumber3 ;
|
||
INT_4 errortype ; //1:因为连接不上SMG网关系统,导致包超时 2:发送前发现该包超时 3:包发送失败且超过重发次数
|
||
INT_4 result ;//如果失败是因为对方回了错误的Response,则result中保留错误的Response Result值,否则是内部的错误码:负值。
|
||
}MTErrorStr;
|
||
|
||
|
||
|
||
int WINAPI Startup(char* cLocalIp,short iLocalPort,
|
||
char* cSmgIp,short iSmgPort,
|
||
char* cLoginName,char* cPassword,
|
||
int lSocketTimeOut,int lMTTimeOut,
|
||
unsigned int iSrcNode,int lMTThread,
|
||
int lMaxListNode,int lMTMaxRetryTime,int lMOThread,
|
||
void (* fProcessDeliver)(DeliverStr deliver),
|
||
void (* fProcessReport)(ReportStr report),
|
||
void (* fProcessResponse)(MTRespStr response),
|
||
void (*fProcessMTError)(MTErrorStr mterror));
|
||
|
||
|
||
//int WINAPI Cleanup();
|
||
int WINAPI Cleanup();
|
||
|
||
|
||
int WINAPI Submit(char* spnumber,
|
||
char* chargenumber,
|
||
int user_count,
|
||
char* usernumber,
|
||
char* corpid,
|
||
char* service_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,
|
||
char* reserve,
|
||
UINT_4 *sequencenumber1,
|
||
UINT_4 *sequencenumber2,
|
||
UINT_4 *sequencenumber3);
|
||
|
||
int WINAPI Deliver(int *type,
|
||
DeliverStr* DeliverStruct,
|
||
ReportStr* ReportStruct,
|
||
MTRespStr* RespStruct,
|
||
MTErrorStr* MTErrorStruct);
|
||
|
||
|
||
#endif
|