📄 cngpconsts.pas
字号:
unit CNGPConsts;
interface
uses
Windows,
Messages;
const
(**************** Socket settings ***************)
SECTION_REMOTE: string = 'REMOTE';
SECTION_LOCAL: string = 'LOCAL';
SECTION_CONNECT: string = 'CONNECT';
SECTION_ACTIVE_TEST: string = 'ACTIVE_TEST';
SECTION_AUTHENTICATION: string = 'AUTHENTICATION';
SECTION_DATABASE: string = 'DATABASE';
KEY_HOST: string = 'HOST';
KEY_PORT: string = 'PORT';
KEY_TIMEOUT: string = 'TIMEOUT';
KEY_AUTO_RECONNECT: string = 'AUTO_RECONNECT';
KEY_AT_INTERVAL: string = 'AT_INTERVAL';
KEY_AT_TIMEOUT: string = 'AT_TIMEOUT';
KEY_SP_ID: string = 'SP_ID';
KEY_SHARED_KEY: string = 'SHARED_KEY';
KEY_CONNECTION_STRING: string = 'CONNECTION_STRING';
DEF_PORT: integer = 9890;
DEF_TIMEOUT: integer = 5000;
DEF_AUTO_RECONNECT: integer = 120;
DEF_AT_INTERVAL: integer = 30000;
DEF_AT_TIMEOUT: integer = 5000;
(**************** Command IDs ****************)
COMMAND_LOGIN: DWord = $00000001;
COMMAND_LOGIN_RESP: DWord = $80000001;
COMMAND_SUBMIT: DWord = $00000002;
COMMAND_SUBMIT_RESP: DWord = $80000002;
COMMAND_DELIVER: DWord = $00000003;
COMMAND_DELIVER_RESP: DWord = $80000003;
COMMAND_ACTIVE_TEST: DWord = $00000004;
COMMAND_ACTIVE_TEST_RESP: DWord = $80000004;
COMMAND_EXIT: DWord = $00000006;
COMMAND_EXIT_RESP: DWord = $80000006;
(************* TLV tags **************)
TAG_PROTOCOL_ID = $0100;
TAG_CONGESTION_STATE = $0428;
TLV_VALUE_LENGTH = 1;
(************** Command status values ***************)
STATUS_SUCCESS: DWord = 0;
STATUS_SYSTEM_BUSY: DWord = 1;
STATUS_MAX_CONNECTIONS_EXCEEDED: DWord = 2;
STATUS_MSG_STRUCT_ERROR: DWord = 10;
STATUS_COMMAND_ID_ERROR: DWord = 11;
STATUS_DUPLICATE_SEQUENCE_ID: DWord = 12;
STATUS_ADDRESS_ERROR: DWord = 20;
STATUS_AUTHENTICATION_FAILED: DWord = 21;
STATUS_VERSION_TOO_HIGH: DWord = 22;
STATUS_ILLEGAL_FEE_USER_TYPE: DWord = 23;
STATUS_ILLEGAL_SUB_TYPE: DWord = 24;
STATUS_NODESCOUNT_THRESHOLD_EXCEEDED: DWord = 25;
STATUS_ILLEGAL_MSG_ID: DWord = 26;
STATUS_ILLEGAL_MSG_TYPE: DWord = 30;
STATUS_ILLEGAL_PRIORITY: DWord = 31;
STATUS_ILLEGAL_FEE_TYPE: DWord = 32;
STATUS_ILLEGAL_FEE_CODE: DWord = 33;
STATUS_ILLEGAL_MSG_FORMAT: DWord = 34;
STATUS_ILLEGAL_TIME_FORMAT: DWord = 35;
STATUS_ILLEGAL_MSG_LENGTH: DWord = 36;
STATUS_VALID_TIME_EXCEEDED: DWord = 37;
STATUS_ILLEGAL_QUERY_TYPE: DWord = 38;
STATUS_ROUTING_ERROR: DWord = 39;
STATUS_ACCOUNT_NOT_EXIST: DWord = 40;
STATUS_NOT_ENOUGH_BALANCE: DWord = 41;
STATUS_ACCOUNT_UNUSABLE: DWord = 42;
STATUS_USER_NOT_PRECHARGE: DWord = 43;
STATUS_VENDER_START: DWord = 128;
STATUS_VENDER_END: DWord = 255;
(************** Login mode **************)
LOGIN_SEND = 0;
LOGIN_RECEIVE = 1;
LOGIN_SEND_RECEIVE = 2;
(**************** Message formats ****************)
FORMAT_ASCII: Byte = 0;
FORMAT_RESERVED: Byte = 3;
FORMAT_BINARY: Byte = 4;
FORMAT_UCS2: Byte = 8;
FORMAT_GB2312: Byte = 15;
(**************** Error messages ****************)
ERROR_DELIVERED: string = 'DELIVRD';
ERROR_EXPIRED: string = 'EXPIRED';
ERROR_DELETED: string = 'DELETED';
ERROR_UNDELIVERABLE: string = 'UNDELIV';
ERROR_ACCEPTED: string = 'ACCEPTD';
ERROR_UNKNOWN: string = 'UNKNOWN';
ERROR_REJECTED: string = 'REJECTD';
ERROR_CAXXXX: string = 'CA:%s';
ERROR_CBYYYY: string = 'CB:%s';
ERROR_MAXXXX: string = 'MA:%s';
ERROR_MBZZZZ: string = 'MB:%s';
(**************** Error codes ****************)
ERROR_ID_XXXX_NOT_CONNECTED: Word = 51;
ERROR_ID_XXXX_NOT_LOGGEDIN: Word = 52;
ERROR_ID_XXXX_SEND_FAILED: Word = 53;
ERROR_ID_XXXX_RESP_TIMEDOUT: Word = 54;
ERROR_ID_XXXX_VENDER_START: Word = 100;
ERROR_ID_XXXX_VENDER_END: Word = 499;
ERROR_ID_YYYY_NOT_PRECHARGE_USER: Word = 1;
ERROR_ID_YYYY_DATABASE_OPERATION_FAILED: Word = 2;
ERROR_ID_YYYY_AUTHENTICATION_FAILED: Word = 3;
ERROR_ID_YYYY_MAX_ERRORS_EXCEEDED: Word = 4;
ERROR_ID_YYYY_PHS_ACCOUNT_ERROR: Word = 5;
ERROR_ID_YYYY_SVC_NOT_ACTIVATED: Word = 6;
ERROR_ID_YYYY_NOT_ENOUGH_BALANCE: Word = 7;
ERROR_ID_YYYY_MONTH_FEE_MAX_EXCEEDED: Word = 8;
ERROR_ID_YYYY_MAX_CREDIT_EXCEEDED: Word = 9;
ERROR_ID_YYYY_SVC_USR_ALREADY_REGISTERED: Word = 10;
ERROR_ID_YYYY_SVC_USR_NOT_REGISTERED: Word = 11;
ERROR_ID_YYYY_UNREGISTERED_SMGW: Word = 14;
ERROR_ID_YYYY_SMGW_LONGIN_DIGEST_ERROR: Word = 15;
ERROR_ID_YYYY_PARAM_ERROR: Word = 16;
ERROR_ID_YYYY_SVR_DATA_NOT_TERMINATED: Word = 17;
ERROR_ID_YYYY_DUPLICATE_CHARGE_MSGID: Word = 18;
ERROR_ID_YYYY_UNKOWN_ERROR: Word = 20;
ERROR_ID_YYYY_DATABASE_ERROR: Word = 21;
ERROR_ID_YYYY_SP_CONNECTION_FAILED: Word = 22;
ERROR_ID_YYYY_VAR_OVERFLOW: Word = 23;
ERROR_ID_YYYY_FIELD_TOO_LARGE: Word = 24;
ERROR_ID_YYYY_NO_SUCH_DATA: Word = 25;
ERROR_ID_YYYY_DUPLICATE_DATA: Word = 26;
ERROR_ID_YYYY_UNREGISTERED_SP: Word = 40;
ERROR_ID_YYYY_SP_ACCOUNT_ABNORMAL: Word = 41;
ERROR_ID_YYYY_SP_PERMISSION_NOT_GRANTED: Word = 42;
ERROR_ID_YYYY_SP_ACCOUNT_EXISTS: Word = 43;
ERROR_ID_YYYY_SP_UNREGISTERED_SVC: Word = 44;
ERROR_ID_YYYY_SP_SVC_DATA_ABNORMAL: Word = 45;
ERROR_ID_YYYY_SVC_EXISTS: Word = 46;
ERROR_ID_YYYY_LICENSE_EXISTS: Word = 55;
ERROR_ID_YYYY_LICENSE_NOT_EXIST: Word = 56;
ERROR_ID_YYYY_LICENSE_DATA_ABNORMAL: Word = 57;
ERROR_ID_YYYY_MONTH_FEE_OVERFLOW: Word = 61;
ERROR_ID_YYYY_SINGLE_FEE_OVERFLOW: Word = 62;
ERROR_ID_YYYY_USER_DENIAL: Word = 63;
ERROR_ID_YYYY_MSG_ID_EXISTS: Word = 64;
ERROR_ID_YYYY_INVALID_CHARGE_REQUEST: Word = 65;
ERROR_ID_YYYY_CHARGE_REQUEST_ALREADY_CONFIRMED: Word = 66;
ERROR_ID_YYYY_CHARGE_TYPE_NOT_DEFINED: Word = 67;
ERROR_ID_YYYY_MSG_FORMAT_NOT_DEFINED: Word = 68;
ERROR_ID_YYYY_VENDER_START: Word = 100;
ERROR_ID_YYYY_VENDER_END: Word = 499;
ERROR_ID_ZZZZ_VENDER_START_TOP: Word = $0001;
ERROR_ID_ZZZZ_VENDER_END_TOP: Word = $0002;
ERROR_ID_ZZZZ_MSG_LEN_ERROR: Word = $0010;
ERROR_ID_ZZZZ_CMD_LEN_ERROR: Word = $0011;
ERROR_ID_ZZZZ_INVALID_MESSAGE_ID: Word = $0012;
ERROR_ID_ZZZZ_CMD_PERMISSION_NOT_GRANTED: Word = $0013;
ERROR_ID_ZZZZ_INVALID_SYS_ID: Word = $0020;
ERROR_ID_ZZZZ_INVALID_SHARE_KEY: Word = $0021;
ERROR_ID_ZZZZ_INVALID_SYS_TYPE: Word = $0022;
ERROR_ID_ZZZZ_ADDRESS_ERROR: Word = $0040;
ERROR_ID_ZZZZ_MAX_SUBMIT_EXCEEDED: Word = $0041;
ERROR_ID_ZZZZ_MAX_DELIVER_EXCEEDED: Word = $0042;
ERROR_ID_ZZZZ_INVALID_USER: Word = $0043;
ERROR_ID_ZZZZ_INVALID_DATA_FORMAT: Word = $0044;
ERROR_ID_ZZZZ_MSG_CREATION_FAILED: Word = $0045;
ERROR_ID_ZZZZ_INVALID_MSG_ID: Word = $0046;
ERROR_ID_ZZZZ_DATABASE_FAILED: Word = $0047;
ERROR_ID_ZZZZ_MSG_CANCEL_FAILED: Word = $0048;
ERROR_ID_ZZZZ_MSG_STATE_ERROR: Word = $0049;
ERROR_ID_ZZZZ_MSG_REPLACE_FAILED: Word = $004A;
ERROR_ID_ZZZZ_MSG_SRC_TERM_REPLACE_ERROR: Word = $004B;
ERROR_ID_ZZZZ_SRC_TERM_ERROR: Word = $0062;
ERROR_ID_ZZZZ_DEST_TERM_ERROR: Word = $0065;
ERROR_ID_ZZZZ_INVALID_AT_TIME: Word = $0066;
ERROR_ID_ZZZZ_INVALID_VALID_TIME: Word = $0067;
ERROR_ID_ZZZZ_INVALID_IS_REPORT: Word = $0068;
ERROR_ID_ZZZZ_INVALID_PRI: Word = $006A;
ERROR_ID_ZZZZ_INVALID_NEED_REPORT: Word = $006B;
ERROR_ID_ZZZZ_USER_ALREADY_EXISTS: Word = $0080;
ERROR_ID_ZZZZ_USER_CREATION_FAILED: Word = $0081;
ERROR_ID_ZZZZ_USER_ID_ERROR: Word = $0082;
ERROR_ID_ZZZZ_USER_NOT_EXIST: Word = $0083;
ERROR_ID_ZZZZ_VENDER_START_BOTTOM: Word = $0090;
ERROR_ID_ZZZZ_VENDER_END_BOTTOM: Word = $0FFF;
ERROR_ID_SUCCESS = '000';
ERROR_ID_USER_UNREACHABLE = '001';
ERROR_ID_USER_BUSY = '002';
ERROR_ID_TERM_NO_SUCH_PART_NO = '003';
ERROR_ID_ILLEGAL_USER = '004';
ERROR_ID_USER_IN_BLACK_LIST = '005';
ERROR_ID_SYS_ERR = '006';
ERROR_ID_USER_MEMORY_FULL = '007';
ERROR_ID_NOT_TERM = '008';
ERROR_ID_DATA_ERROR = '009';
ERROR_ID_DATA_LOSS = '010';
//todo: Add error message text below
// Status错误
STATUS_TEXT_SUCCESS: string = '成功';
STATUS_TEXT_SYSTEM_BUSY: string = '系统忙';
STATUS_TEXT_MAX_CONNECTIONS_EXCEEDED: string = '超过最大连接数';
STATUS_TEXT_MSG_STRUCT_ERROR: string = '消息结构错';
STATUS_TEXT_COMMAND_ID_ERROR: string = '命令字错';
STATUS_TEXT_DUPLICATE_SEQUENCE_ID: string = '序列号重复';
STATUS_TEXT_ADDRESS_ERROR: string = 'IP地址错';
STATUS_TEXT_AUTHENTICATION_FAILED: string = '认证失败';
STATUS_TEXT_VERSION_TOO_HIGH: string = '版本太高';
STATUS_TEXT_ILLEGAL_FEE_USER_TYPE: string = '非法的FeeUserType';
STATUS_TEXT_ILLEGAL_SUB_TYPE: string = '非法的SubType';
STATUS_TEXT_NODESCOUNT_THRESHOLD_EXCEEDED: string = '节点数超过阈值';
STATUS_TEXT_ILLEGAL_MSG_ID: string = '非法的MsgId';
STATUS_TEXT_ILLEGAL_MSG_TYPE: string = '非法的消息类型';
STATUS_TEXT_ILLEGAL_PRIORITY: string = '非法的优先级';
STATUS_TEXT_ILLEGAL_FEE_TYPE: string = '非法的资费类型';
STATUS_TEXT_ILLEGAL_FEE_CODE: string = '非法的资费代码';
STATUS_TEXT_ILLEGAL_MSG_FORMAT: string = '非法的短消息格式';
STATUS_TEXT_ILLEGAL_TIME_FORMAT: string = '非法的时间格式';
STATUS_TEXT_ILLEGAL_MSG_LENGTH: string = '非法的短消息长度';
STATUS_TEXT_VALID_TIME_EXCEEDED: string = '有效期已过';
STATUS_TEXT_ILLEGAL_QUERY_TYPE: string = '非法查询类别';
STATUS_TEXT_ROUTING_ERROR: string = '路由错误';
STATUS_TEXT_ACCOUNT_NOT_EXIST: string = '账户不存在';
STATUS_TEXT_NOT_ENOUGH_BALANCE: string = '余额不足';
STATUS_TEXT_ACCOUNT_UNUSABLE: string = '账户不可用';
STATUS_TEXT_USER_NOT_PRECHARGE: string = '非预付费用户';
STATUS_TEXT_VENDER: string = '厂商定义错误';
STATUS_TEXT_UNKOWN: string = '未知错误';
function GetStatusText(statusId: DWord): string;
implementation
function GetStatusText(statusId: DWord): string;
begin
if statusId = STATUS_SUCCESS then
Result := STATUS_TEXT_SUCCESS
else if statusId = STATUS_SYSTEM_BUSY then
Result := STATUS_TEXT_SYSTEM_BUSY
else if statusId = STATUS_MAX_CONNECTIONS_EXCEEDED then
Result := STATUS_TEXT_MAX_CONNECTIONS_EXCEEDED
else if statusId = STATUS_MSG_STRUCT_ERROR then
Result := STATUS_TEXT_MSG_STRUCT_ERROR
else if statusId = STATUS_COMMAND_ID_ERROR then
Result := STATUS_TEXT_COMMAND_ID_ERROR
else if statusId = STATUS_DUPLICATE_SEQUENCE_ID then
Result := STATUS_TEXT_DUPLICATE_SEQUENCE_ID
else if statusId = STATUS_ADDRESS_ERROR then
Result := STATUS_TEXT_ADDRESS_ERROR
else if statusId = STATUS_AUTHENTICATION_FAILED then
Result := STATUS_TEXT_AUTHENTICATION_FAILED
else if statusId = STATUS_VERSION_TOO_HIGH then
Result := STATUS_TEXT_VERSION_TOO_HIGH
else if statusId = STATUS_ILLEGAL_FEE_USER_TYPE then
Result := STATUS_TEXT_ILLEGAL_FEE_USER_TYPE
else if statusId = STATUS_ILLEGAL_SUB_TYPE then
Result := STATUS_TEXT_ILLEGAL_SUB_TYPE
else if statusId = STATUS_NODESCOUNT_THRESHOLD_EXCEEDED then
Result := STATUS_TEXT_NODESCOUNT_THRESHOLD_EXCEEDED
else if statusId = STATUS_ILLEGAL_MSG_ID then
Result := STATUS_TEXT_ILLEGAL_MSG_ID
else if statusId = STATUS_ILLEGAL_MSG_TYPE then
Result := STATUS_TEXT_ILLEGAL_MSG_TYPE
else if statusId = STATUS_ILLEGAL_PRIORITY then
Result := STATUS_TEXT_ILLEGAL_PRIORITY
else if statusId = STATUS_ILLEGAL_FEE_TYPE then
Result := STATUS_TEXT_ILLEGAL_FEE_TYPE
else if statusId = STATUS_ILLEGAL_FEE_CODE then
Result := STATUS_TEXT_ILLEGAL_FEE_CODE
else if statusId = STATUS_ILLEGAL_MSG_FORMAT then
Result := STATUS_TEXT_ILLEGAL_MSG_FORMAT
else if statusId = STATUS_ILLEGAL_TIME_FORMAT then
Result := STATUS_TEXT_ILLEGAL_TIME_FORMAT
else if statusId = STATUS_ILLEGAL_MSG_LENGTH then
Result := STATUS_TEXT_ILLEGAL_MSG_LENGTH
else if statusId = STATUS_VALID_TIME_EXCEEDED then
Result := STATUS_TEXT_VALID_TIME_EXCEEDED
else if statusId = STATUS_ILLEGAL_QUERY_TYPE then
Result := STATUS_TEXT_ILLEGAL_QUERY_TYPE
else if statusId = STATUS_ROUTING_ERROR then
Result := STATUS_TEXT_ROUTING_ERROR
else if statusId = STATUS_ACCOUNT_NOT_EXIST then
Result := STATUS_TEXT_ACCOUNT_NOT_EXIST
else if statusId = STATUS_NOT_ENOUGH_BALANCE then
Result := STATUS_TEXT_NOT_ENOUGH_BALANCE
else if statusId = STATUS_ACCOUNT_UNUSABLE then
Result := STATUS_TEXT_ACCOUNT_UNUSABLE
else if statusId = STATUS_USER_NOT_PRECHARGE then
Result := STATUS_TEXT_USER_NOT_PRECHARGE
else if statusId in [STATUS_VENDER_START..STATUS_VENDER_END] then
Result := STATUS_TEXT_VENDER
else
Result := STATUS_TEXT_UNKOWN;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -