⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 converse.cpre

📁 商业银行前置系统
💻 CPRE
📖 第 1 页 / 共 2 页
字号:
/* * This is a part of the Application Preconsole * - Service Provide - DSI. * Copyright (C) 2000-2000 ABC.SDC. * All rights reserved. * * This source code is only intended as a supplement to the * Application Preconsole Reference and related * electronic documentation provided with the library. * See these sources for detailed information regarding the * Application Preconsole product. * * Update record: * 2001-08-29 Shuming Pang  - create implementation file for *                            converting functions */#include "ap.h"#include "apsp.h"EXEC SQL INCLUDE sqlca;EXEC SQL INCLUDE "dsi.h";EXEC SQL INCLUDE "dsiext.h";PCSTR pszRespCode[][2] ={    {"00", AP_RESPCODE_ACCEPT              }, /* 承兑或交易成功 */    {"01", AP_RESPCODE_CARD_REFISSUE       }, /* 查发卡方 */    {"02", AP_RESPCODE_CARD_REFISSUE       }, /* 查发卡方的特殊条件 */    {"03", AP_RESPCODE_MERCH_INVALID       }, /* 无效商户 */    {"04", AP_RESPCODE_CARD_CONFISCATE     }, /* 没收卡 */    {"05", AP_RESPCODE_REJECT              }, /* 不予承兑 */    {"06", AP_RESPCODE_SYSERR              }, /* 出错 */    {"07", AP_RESPCODE_CARD_CONFISCATE     }, /* 特殊条件下没收卡 */    {"09", AP_RESPCODE_ORGTRANS_INPROC     }, /* 请求正在处理中 */    {"12", AP_RESPCODE_REJECT              }, /* 无效交易 */    {"13", AP_RESPCODE_AMT_INVALID         }, /* 无效金额 */    {"14", AP_RESPCODE_CARDNO_INVALID      }, /* 无效卡号 */    {"15", AP_RESPCODE_CARD_NOTACCEPT      }, /* 无此发卡方 */    {"19", AP_RESPCODE_SERVICE_RETRY       }, /* 重新送入交易 */    {"20", AP_RESPCODE_REJECT              }, /* 无效应答 */    {"21", AP_RESPCODE_REJECT              }, /* 不作任何处理 */    {"22", AP_RESPCODE_REJECT              }, /* 怀疑操作有误 */    {"23", AP_RESPCODE_FEE_ERR             }, /* 不可接受的交易费 */    {"25", AP_RESPCODE_ORGTRANS_NOTEXIST   }, /* 未能找到文件上记录 */    {"30", AP_RESPCODE_SYSERR              }, /* 格式错误 */    {"31", AP_RESPCODE_CARD_NOTACCEPT      }, /* 交换中心不支持的银行 */    {"33", AP_RESPCODE_CARD_CONFISCATE     }, /* 过期的卡(没收卡) */    {"34", AP_RESPCODE_CARD_CONFISCATE     }, /* 有作弊嫌疑(没收卡) */    {"35", AP_RESPCODE_CARD_CONFISCATE     }, /* 与安保部门联系(没收卡)*/    {"36", AP_RESPCODE_CARD_CONFISCATE     }, /* 受限制的卡(没收卡)*/    {"37", AP_RESPCODE_CARD_CONFISCATE     }, /* 呼受理方安保部门(没收卡)*/    {"38", AP_RESPCODE_CARD_CONFISCATE     }, /* PIN输入次数超限(没收卡)*/    {"39", AP_RESPCODE_ACC_NOTEXIST        }, /* 无此信用卡帐户 */    {"40", AP_RESPCODE_SERVICE_NOTSUPPORT  }, /* 请求的功能尚不支持 */    {"41", AP_RESPCODE_CARD_CONFISCATE     }, /* 挂失卡(没收卡)*/    {"42", AP_RESPCODE_ACC_NOTEXIST        }, /* 无此帐户 */    {"43", AP_RESPCODE_CARD_CONFISCATE     }, /* 被窃卡(没收卡)*/    {"44", AP_RESPCODE_ACC_NOTEXIST        }, /* 无此投资帐户 */    {"51", AP_RESPCODE_ACC_BALLACK         }, /* 无足够的存款 */    {"52", AP_RESPCODE_ACC_NOTEXIST        }, /* 无此支票帐户 */    {"53", AP_RESPCODE_ACC_NOTEXIST        }, /* 无此储蓄卡帐户 */    {"54", AP_RESPCODE_CARD_EXPIRED        }, /* 过期的卡 */    {"55", AP_RESPCODE_ACCPWD_ERR          }, /* 不正确的PIN  */    {"56", AP_RESPCODE_ACC_NOTEXIST        }, /* 无此卡记录 */    {"57", AP_RESPCODE_SERVICE_NOTSUPPORT  }, /* 不允许持卡人进行的交易 */    {"58", AP_RESPCODE_SERVICE_NOTSUPPORT  }, /* 不允许终端进行的交易 */    {"59", AP_RESPCODE_REJECT              }, /* 有作弊嫌疑 */    {"60", AP_RESPCODE_REJECT              }, /* 与安保部门联系 */    {"61", AP_RESPCODE_AMT_OUTLMT          }, /* 超出取款金额限制 */    {"62", AP_RESPCODE_REJECT              }, /* 受限制的卡 */    {"63", AP_RESPCODE_REJECT              }, /* 违反安保规定 */    {"64", AP_RESPCODE_ORGTRANS_AMTERR     }, /* 原始金额不正确 */    {"65", AP_RESPCODE_WITHDRAWTIME_OUTLMT }, /* 超出取款次数限制 */    {"66", AP_RESPCODE_REJECT              }, /* 呼安保部门 */    {"67", AP_RESPCODE_CARD_CONFISCATE     }, /* 捕捉(没收卡)*/    {"68", AP_RESPCODE_REJECT              }, /* 收到的回答太迟 */    {"75", AP_RESPCODE_ACCPWD_TIMEOUTLMT   }, /* PIN 输入次数超限 */    {"90", AP_RESPCODE_SYS_INTERMIT        }, /* 日期切换正在处理 */    {"91", AP_RESPCODE_SYS_INTERMIT        }, /* 发卡方或交换中心不能操作 */    {"92", AP_RESPCODE_CARD_NOTACCEPT      }, /* 目标机构找不到或无法达到 */    {"93", AP_RESPCODE_REJECT              }, /* 交易违法、不能完成 */    {"94", AP_RESPCODE_SYSERR              }, /* 重复交易 */    {"95", AP_RESPCODE_SYSERR              }, /* 调节控制错 */    {"96", AP_RESPCODE_SYSERR              }, /* 系统异常、失效 */    {"97", AP_RESPCODE_REQID_INVALID       }, /* ATM/POS 终端号找不到 */    {"98", AP_RESPCODE_SYSERR              }, /* 交换中心收不到发卡方应答 */    {"99", AP_RESPCODE_ACCPWD_ERR          }, /* PIN 格式错 */    {"A0", AP_RESPCODE_SYSERR              }, /* MAC鉴别失败 */    {NULL, NULL                            }};RESULT GetPan(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szAccNo[AP_LEN_ACCNO + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_ACCNO, szAccNo));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_PAN, szAccNo,                                  strlen(szAccNo)));    return NORMAL;}RESULT GetTransAmt(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szAmt[AP_LEN_AMT + 1];    char szTransAmt[SIZE_TRANSAMT + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_AMT, szAmt));    sprintf(szTransAmt, "%012.0lf", atof(szAmt) * 100);    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_TRANSAMT, szTransAmt,                                  SIZE_TRANSAMT));    return NORMAL;}RESULT GetTransmissDateTime(PISO8583STRU piso8583stru){    TIMESTRU timestru;    char szTransmissDateTime[SIZE_TRANSMISSDATETIME + 1];    timestru = GetTime();    sprintf(szTransmissDateTime, "%02d%02d%02d%02d%02d",            timestru.nMon, timestru.nDay,            timestru.nHour, timestru.nMin, timestru.nSec);    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_TRANSMISSDATETIME,                                  szTransmissDateTime, SIZE_TRANSMISSDATETIME));    return NORMAL;}RESULT GetTraceNo(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szSeqNo[AP_LEN_SEQNO + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_SEQNO, szSeqNo));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_TRACENO, szSeqNo + 6,                                  SIZE_TRACENO));    return NORMAL;}RESULT GetLocalTransDate(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szReqDate[AP_LEN_DATE + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_REQDATE, szReqDate));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_LOCALTRANSDATE,                                  szReqDate + 4, SIZE_LOCALTRANSDATE));    return NORMAL;}RESULT GetLocalTransTime(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szReqTime[AP_LEN_TIME + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_REQTIME, szReqTime));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_LOCALTRANSTIME, szReqTime,                                  SIZE_LOCALTRANSTIME));    return NORMAL;}RESULT GetMerchType(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szMerchType[AP_LEN_MERCHTYPE + 1];    char szReqType[AP_LEN_REQTYPE + 1];	ASSERT_NORMAL(AP_DEMAND(AP_PATH_REQTYPE, szReqType));	if (strcmp(szReqType, AP_REQTYPE_ATM) == 0)        strcpy(szMerchType, "6011");	else        ASSERT_NORMAL(AP_DEMAND(AP_PATH_MERCHTYPE, szMerchType));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_MERCHTYPE, szMerchType,                                  SIZE_MERCHTYPE));    return NORMAL;}RESULT GetEntryMode(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szTrackVerify[1 + 1];    char szEntryMode[SIZE_ENTRYMODE + 1];    char szAccPwd[AP_LEN_ACCPWD + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_TRACKVERIFY, szTrackVerify));    if (strcmp(szTrackVerify, "Y") == 0)        strcpy(szEntryMode, "02");    else        strcpy(szEntryMode, "01");    if (AP_DEMAND(AP_PATH_ACCPWD, szAccPwd) == NORMAL)        strcat(szEntryMode, "1");    else        strcat(szEntryMode, "2");    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_ENTRYMODE, szEntryMode,                                  SIZE_ENTRYMODE));    return NORMAL;}RESULT GetConditionCode(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szReqType[AP_LEN_REQTYPE + 1];    char szTransCode[AP_LEN_TRANSCODE + 1];    char szConditionCode[SIZE_CONDITIONCODE + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_REQTYPE, szReqType));    ASSERT_NORMAL(AP_DEMAND(AP_PATH_TRANSCODE, szTransCode));    if (strcmp(szReqType, AP_REQTYPE_ATM) == 0)        strcpy(szConditionCode, "02");    else if (strcmp(szTransCode, AP_TRANSCODE_CS_AUTH) == 0 ||             strcmp(szTransCode, AP_TRANSCODE_CS_AUTHSETTLE) == 0)        strcpy(szConditionCode, "06");    else        strcpy(szConditionCode, "00");    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_CONDITIONCODE,                                  szConditionCode, SIZE_CONDITIONCODE));    return NORMAL;}RESULT GetPinCaptureCode(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szAccPwd[AP_LEN_ACCPWD + 1];    if (AP_DEMAND(AP_PATH_ACCPWD, szAccPwd) == NORMAL)        ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_PINCAPTURECODE, "06",                                      SIZE_PINCAPTURECODE));    return NORMAL;}RESULT GetAcqId(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szArea[AP_LEN_AREA + 1];    char szAcqId[SIZE_ACQID_MAX + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_AREA, szArea));    strcpy(szAcqId, AP_INST_ABC);    strcat(szAcqId, szArea);    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_ACQID, szAcqId,                                  strlen(szAcqId)));    return NORMAL;}RESULT GetForwardId(PISO8583STRU piso8583stru){    char szArea[AP_LEN_AREA + 1];    char szForwardId[SIZE_FORWARDID_MAX + 1];    ASSERT_NORMAL(ApGetArea(AP_REQID_DSI, szArea));    strcpy(szForwardId, AP_INST_ABC);    strcat(szForwardId, szArea);    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_FORWARDID, szForwardId,                                  strlen(szForwardId)));    return NORMAL;}RESULT GetTrack2(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szTrackVerify[1 + 1];    char szTrack2[AP_LEN_TRACK2 + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_TRACKVERIFY, szTrackVerify));    if (strcmp(szTrackVerify, "Y") == 0)    {        ASSERT_NORMAL(AP_DEMAND(AP_PATH_TRACK2, szTrack2));        ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_TRACK2, szTrack2,                                      strlen(szTrack2)));    }    return NORMAL;}RESULT GetTrack3(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szTrackVerify[1 + 1];    char szTrack3[AP_LEN_TRACK3 + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_TRACKVERIFY, szTrackVerify));    if (strcmp(szTrackVerify, "Y") == 0)    {        if (AP_DEMAND(AP_PATH_TRACK3, szTrack3) != NORMAL)            return NORMAL;        ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_TRACK3, szTrack3,                                      strlen(szTrack3)));    }    return NORMAL;}RESULT GetRetrievalRefNo(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szSeqNo[AP_LEN_SEQNO + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_SEQNO, szSeqNo));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_RETRIEVALREFNO, szSeqNo,                                  SIZE_RETRIEVALREFNO));    return NORMAL;}RESULT GetAuthResp(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szAuthCode[AP_LEN_AUTHCODE + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_AUTHCODE, szAuthCode));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_AUTHRESP, szAuthCode,                                  SIZE_AUTHRESP));    return NORMAL;}RESULT GetTermId(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szReqId[AP_LEN_ID + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_REQID, szReqId));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_TERMID, szReqId,                                  SIZE_TERMID));    return NORMAL;}RESULT GetAcceptorId(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szMerchNo[AP_LEN_MERCHNO + 1];    char szReqType[AP_LEN_REQTYPE + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_REQTYPE, szReqType));    if (strcmp(szReqType, AP_REQTYPE_ATM) == 0)        strcpy(szMerchNo, "000000000000000");    else        ASSERT_NORMAL(AP_DEMAND(AP_PATH_MERCHNO, szMerchNo));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_ACCEPTORID, szMerchNo,                                  SIZE_ACCEPTORID));    return NORMAL;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -