📄 cmpplib.h
字号:
#ifndef _CMPPLIB_H_
#define _CMPPLIB_H_
#pragma pack(push, 1)
//#define CMPP_VERSION_20
// 消息 Command_Id值 说明
#define CMPP_CONNECT 0x00000001 // 请求连接
#define CMPP_CONNECT_RESP 0x80000001 // 请求连接应答
#define CMPP_TERMINATE 0x00000002 // 终止连接
#define CMPP_TERMINATE_RESP 0x80000002 // 终止连接应答
#define CMPP_SUBMIT 0x00000004 // 提交短信
#define CMPP_SUBMIT_RESP 0x80000004 // 提交短信应答
#define CMPP_DELIVER 0x00000005 // 短信下发
#define CMPP_DELIVER_RESP 0x80000005 // 下发短信应答
#define CMPP_QUERY 0x00000006 // 发送短信状态查询
#define CMPP_QUERY_RESP 0x80000006 // 发送短信状态查询应答
#define CMPP_CANCEL 0x00000007 // 删除短信
#define CMPP_CANCEL_RESP 0x80000007 // 删除短信应答
#define CMPP_ACTIVE_TEST 0x00000008 // 激活测试
#define CMPP_ACTIVE_TEST_RESP 0x80000008 // 激活测试应答
#define CMPP_LinkDown 0x8001
#define CMPP_LinkUp 0x8002
#define MAX_SP_ID_LEN 6
#define MAX_MSG_ID_LEN 8
#define MAX_SERVICE_ID_LEN 10
#define MAX_FEE_TERMINALID_LEN 32
#define MAX_SRC_TERMINALID_LEN 21
#define MAX_DST_TERMINALID_LEN 32
#define MAX_VALID_TIME_LEN 17
#define MAX_FEE_CODE_LEN 6
#define MAX_FEE_TYPE_LEN 2
#define MAX_MSG_CONTENT_LEN 256
#define MAX_LINK_ID_LEN 20
typedef struct
{
unsigned int nTotalLen;
unsigned int nCommandId;
unsigned int nSeqId;
} TCmppHead;
typedef struct
{
char sSpId[MAX_SP_ID_LEN];
char sAuthenticatorSource[16];
unsigned char nVersion;
unsigned int nTimeStamp;
} TCmppConnectReq;
typedef struct
{
unsigned int nStatus;
char sAuthenticatorSource[16];
unsigned char nVersion;
} TCmppConnectRep;
#define TCmppTerminateReq TCmppHead
#define TCmppTerminateRep TCmppHead
#define TCmppActiveTestReq TCmppHead
#define TCmppActiveTestRep TCmppHead
typedef struct
{
char sMsgId[MAX_MSG_ID_LEN];
unsigned char nPkTotal;
unsigned char nPkNumber;
unsigned char nRegister;
unsigned char nMsgLevel;
char sServiceId[MAX_SERVICE_ID_LEN];
unsigned char nFeeUserType;
char sFeeTerminalId[MAX_FEE_TERMINALID_LEN];
unsigned char nFeeTerminalType;
unsigned char nTPPid;
unsigned char nTPUdhi;
unsigned char nMsgFmt;
char sMsgSrc[MAX_SP_ID_LEN];
char sFeeType[MAX_FEE_TYPE_LEN];
char sFeeCode[MAX_FEE_CODE_LEN];
char sValidTime[MAX_VALID_TIME_LEN];
char sAtTime[MAX_VALID_TIME_LEN];
char sSrcTerminalId[MAX_SRC_TERMINALID_LEN];
unsigned char nDstTerminadNum;
char sDstTerminalId[MAX_DST_TERMINALID_LEN];
unsigned char nDstTerminalIdType;
unsigned char nMsgLen;
char sMsgContent[MAX_MSG_CONTENT_LEN];
char sLinkId[MAX_LINK_ID_LEN];
} TCmppSubmitReq;
typedef struct
{
char sMsgId[MAX_MSG_ID_LEN];
#ifndef CMPP_VERSION_20
unsigned int nResult;
#else
unsigned char nResult;
#endif
} TCmppSubmitRep;
typedef struct
{
char sTime[8];
unsigned char nQueryType;
char sQueryCode[MAX_SERVICE_ID_LEN];
char nReserve[8];
} TCmppQueryReq;
typedef struct
{
char sTime[8];
unsigned char nQueryType;
char sQueryCode[MAX_SERVICE_ID_LEN];
unsigned int nMT_TLMsg;
unsigned int nMT_Tlusr;
unsigned int nMT_Scs;
unsigned int nMT_WT;
unsigned int nMT_FL;
unsigned int nMO_Scs;
unsigned int nMO_WT;
unsigned int nMO_FL;
} TCmppQueryRep;
typedef struct
{
char sMsgId[MAX_MSG_ID_LEN];
char sDstTerminalId[MAX_SRC_TERMINALID_LEN];
char sServiceId[MAX_SERVICE_ID_LEN];
unsigned char nTPPid;
unsigned char nTPUdhi;
unsigned char nMsgFmt;
char sSrcTerminalId[MAX_DST_TERMINALID_LEN];
unsigned char nSrcTerminalType;
unsigned char nRegistered;
unsigned char nMsgLen;
char sMsgContent[MAX_MSG_CONTENT_LEN];
char sLinkID[MAX_LINK_ID_LEN];
} TCmppDeliverReq;
typedef struct
{
char sMsgId[MAX_MSG_ID_LEN+MAX_MSG_ID_LEN+1];
unsigned char nState;
char sSubmitTime[MAX_VALID_TIME_LEN];
char sDoneTime[MAX_VALID_TIME_LEN];
char sDstTerminalId[MAX_DST_TERMINALID_LEN];
unsigned int nSeqId;
} TCmppReportMsg;
#define TCmppDeliverRep TCmppSubmitRep
typedef struct
{
char sMsgId[MAX_MSG_ID_LEN];
} TCmppCancelReq;
typedef struct
{
unsigned int nResult;
} TCmppCancelRep;
typedef struct
{
TCmppHead rMsgHead;
union
{
TCmppConnectReq rConnectReq;
TCmppConnectRep rConnectRep;
TCmppDeliverReq rDeliverReq;
TCmppDeliverRep rDeliverRep;
TCmppSubmitReq rSubmitReq;
TCmppSubmitRep rSubmitRep;
TCmppQueryReq rQueryReq;
TCmppQueryRep rQueryRep;
TCmppCancelReq rCancelReq;
TCmppCancelRep rCancelRep;
} rMsgBody;
} TCmppPacket;
int CMPP_InitClient(char *sMiscIp, int nMiscPort);
void CMPP_GetClientEvent();
void CMPP_CloseClient();
int CMPP_Connect(char *sSpId, char *sSpPwd);
int CMPP_SendSubmitReq(unsigned int *pnSeqId,
char *sMsgId,
unsigned char nPkTotal,
unsigned char nPkNumber,
unsigned char nRegister,
unsigned char nMsgLevel,
char *sServiceId,
unsigned char nFeeUserType,
char *sFeeTerminalId,
unsigned char nFeeTerminalType,
unsigned char nTPPid,
unsigned char nTPUdhi,
unsigned char nMsgFmt,
char *sSpId,
unsigned char nFeeType,
char *sFeeCode,
char *sSrcTerminalId,
unsigned char nDstAddrNumber,
char *sDstTerminalId,
unsigned char nDstTerminalType,
unsigned char nMsgLen,
char *sMsgContent,
char *sLinkId);
void CMPP_SendDeliverRep(unsigned int nSeqId);
void CMPP_SendQureyReq(char * sServiceId, char *sTime, unsigned char nQueryType);
void CMPP_SendActiveTestReq();
void CMPP_SendActiveTestRep(unsigned int nSeqId);
void CMPP_SendTerminateReq();
void CMPP_SendTerminateRep(unsigned int nSeqId);
int CMPP_PraseMsgId(char *sMsgId, int nMsgIdLen, char *sStrMsgId);
void CMPP_PraseReport(char *sReport, TCmppReportMsg *pCmppReportMsg);
#pragma pack(pop)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -