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

📄 handle.cpre

📁 商业银行前置系统
💻 CPRE
📖 第 1 页 / 共 4 页
字号:
    DeleteXml(&xmlstruReq);    DeleteXml(&xmlstruResp);    return NORMAL;}RESULT HandleTfr(char cMsg[SIZE_MSG_ATM], char szMsgLen[6 + 1], ATMSTRU atmstru){    XMLSTRU xmlstruReq;    XMLSTRU xmlstruResp;    PXMLSTRU pxmlstruReq;    PXMLSTRU pxmlstruResp;    PTFRSTRU ptfrstru;    TFRACCEPTSTRU tfracceptstru;    TFRREJECTSTRU tfrrejectstru;    TFRBALLACKSTRU tfrballackstru;    char szReqId[AP_LEN_ID + 1];    char szReqDate[AP_LEN_DATE + 1];    char szReqTime[AP_LEN_TIME + 1];    char szReqSeqNo[AP_LEN_SEQNO + 1];    char szAccNo[AP_LEN_ACCNO + 1];    char szAtmAccNo[SIZE_ACCNO + 1];    char szAddAccNo[AP_LEN_ACCNO + 1];    char szAmt[AP_LEN_AMT + 1];    char szTransAmt[SIZE_TRANSAMT + 1];    char szExpDate[AP_LEN_EXPDATE + 1];    char szTrack2[AP_LEN_TRACK2 + 1];    char szTrack3[AP_LEN_TRACK3 + 1];    char szAccPwd[AP_LEN_ACCPWD + 1];    char szRespCode[AP_LEN_RESPCODE + 1];    char szRespSeqNo[AP_LEN_SEQNO + 1];    char szRespDate[AP_LEN_DATE + 1];    char szRespTime[AP_LEN_TIME + 1];    char szDateTimeDays[SIZE_DATETIMEDAYS + 1];    char szBal[AP_LEN_BAL + 1];    char szAvailBal[AP_LEN_BAL + 1];    memset(&tfracceptstru, '0', sizeof(tfracceptstru));    memset(&tfrrejectstru, '0', sizeof(tfrrejectstru));    memset(&tfrballackstru, '0', sizeof(tfrballackstru));    memset(&xmlstruReq, 0, sizeof(xmlstruReq));    memset(&xmlstruResp, 0, sizeof(xmlstruResp));    bufclr(szReqId);    bufclr(szReqDate);    bufclr(szReqTime);    bufclr(szReqSeqNo);    bufclr(szAccNo);    bufclr(szAtmAccNo);    bufclr(szAddAccNo);    bufclr(szExpDate);    bufclr(szTrack2);    bufclr(szTrack3);    bufclr(szAccPwd);    bufclr(szAmt);    bufclr(szTransAmt);    bufclr(szRespCode);    bufclr(szRespSeqNo);    bufclr(szRespDate);    bufclr(szRespTime);    bufclr(szDateTimeDays);    bufclr(szBal);    bufclr(szAvailBal);    pxmlstruReq = &xmlstruReq;    pxmlstruResp = &xmlstruResp;       /*     * Convert string to xml.     */    ptfrstru = (PTFRSTRU)cMsg;       memcpy(szReqId, atmstru.szAtmNo, AP_LEN_ID);	SetAtmReqSeqNo(szReqSeqNo, ptfrstru->cReqSeqNo);    memcpy(szAtmAccNo, ptfrstru->cAccNo, SIZE_ACCNO);    memcpy(szAddAccNo, ptfrstru->cAccNo2nd, AP_LEN_ACCNO);    memcpy(szTrack2, ptfrstru->cTrack2, AP_LEN_TRACK2);    memcpy(szTrack3, ptfrstru->cTrack3, AP_LEN_TRACK3);    EncryptTrack2(szTrack2, -1);    EncryptTrack3(szTrack3, -1);    ASSURE_NORMAL(GetExpDate(szTrack2, szExpDate))    EncryptAtm(szAtmAccNo, ptfrstru->cEncryptData, -1);    memcpy(szAccPwd, ptfrstru->cEncryptData + 10, AP_LEN_ACCPWD);    strcpy(szAccNo, szAtmAccNo);    memcpy(szTransAmt, ptfrstru->cTransAmt, SIZE_TRANSAMT);    sprintf(szAmt, "%19.2lf", atof(szTransAmt) / 100);    GetAtmDate(szReqDate);    GetAtmTime(szReqTime);    ASSURE_NORMAL(CreateXml(pxmlstruReq, FALSE, AP_PATH_ROOT, NULL))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_MSGTYPE, AP_MSGTYPE_SUBMITREQ))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_TRANSFER))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_REQDATE, szReqDate))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_REQTIME, szReqTime))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_REQID, szReqId))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_REQSEQNO, szReqSeqNo))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_ACCNO, FormatAccNo(szAccNo)))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_ADDACCNO, FormatAccNo(szAddAccNo)))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_EXPDATE, szExpDate))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACK2, szTrack2))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACK3, szTrack3))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "Y"))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_ACCPWD, szAccPwd))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_AMT, szAmt))    ASSURE_NORMAL(ApCaSubmit(pxmlstruReq, pxmlstruResp))    /*     * Convert xml to string.     */    memset(cMsg, 0, SIZE_MSG_ATM);        AP_DEMAND_EXT(AP_PATH_RESPCODE, szRespCode);    AP_DEMAND_EXT(AP_PATH_RESPDATE, szRespDate);    AP_DEMAND_EXT(AP_PATH_RESPTIME, szRespTime);    SetDateTimeDays(szRespDate, szRespTime, szDateTimeDays);    if (strcmp(szRespCode, AP_RESPCODE_ACCEPT) != 0)    {        if (strcmp(szRespCode, AP_RESPCODE_ACC_BALLACK) != 0)        {            if (strcmp(szRespCode, AP_RESPCODE_EXCEPTION) == 0)            {                DeleteXml(&xmlstruReq);                DeleteXml(&xmlstruResp);                            return EXCEPTION;            }                        tfrrejectstru.cTfc = 'A';            tfrrejectstru.cTpc = 'G';            tfrrejectstru.cOperateMode = 'P';            tfrrejectstru.cLimitFlag = '1';            memcpy(tfrrejectstru.cDateTime, szDateTimeDays, SIZE_DATETIMEDAYS);            memcpy(tfrrejectstru.cRejectCode, szRespCode, SIZE_REJECTCODE);            memcpy(tfrrejectstru.cReqSeqNo, szReqSeqNo + 6, SIZE_REQSEQNO);            VERIFY_NORMAL(ApCaRecord(&tfrrejectstru, sizeof(tfrrejectstru),                                     "atm", TRUE));            memcpy(cMsg, &tfrrejectstru, sizeof(tfrrejectstru));	        sprintf(szMsgLen, "%6d", sizeof(tfrrejectstru));        }        else        {            VERIFY_NORMAL(AP_DEMAND_EXT(AP_PATH_AVAILBAL, szAvailBal));            sprintf(szAvailBal, "%-6.2lf", atof(szAvailBal));            tfrballackstru.cTfc = 'A';            tfrballackstru.cTpc = 'U';            tfrballackstru.cOperateMode = 'P';            tfrballackstru.cLimitFlag = '1';            memcpy(tfrballackstru.cDateTime, szDateTimeDays, SIZE_DATETIMEDAYS);            memcpy(tfrballackstru.cRejectCode, szRespCode, SIZE_REJECTCODE);            memcpy(tfrballackstru.cAvailFund, szAvailBal, SIZE_AVAILFUND);            memcpy(tfrballackstru.cReqSeqNo, szReqSeqNo + 6, SIZE_REQSEQNO);            VERIFY_NORMAL(ApCaRecord(&tfrballackstru, sizeof(tfrballackstru),                                     "atm", TRUE));            memcpy(cMsg, &tfrballackstru, sizeof(tfrballackstru));	        sprintf(szMsgLen, "%6d", sizeof(tfrballackstru));        }    }    else    {        VERIFY_NORMAL(AP_DEMAND_EXT(AP_PATH_RESPSEQNO, szRespSeqNo));        VERIFY_NORMAL(AP_DEMAND_EXT(AP_PATH_AVAILBAL, szAvailBal));        sprintf(szAvailBal, "%-6.2lf", atof(szAvailBal));        tfracceptstru.cTfc = 'A';        tfracceptstru.cTpc = 'Q';        tfracceptstru.cOperateMode = 'P';        tfracceptstru.cAccepted = '1';        tfracceptstru.cLimitFlag = '1';        memcpy(tfracceptstru.cAccNo, szAtmAccNo, SIZE_ACCNO);        memcpy(tfracceptstru.cDateTime, szDateTimeDays, SIZE_DATETIMEDAYS);        memcpy(tfracceptstru.cAvailFund, szAvailBal, SIZE_AVAILFUND);        memcpy(tfracceptstru.cTransAmt, szTransAmt, SIZE_TRANSAMT);        memcpy(tfracceptstru.cRespSeqNo, szRespSeqNo, SIZE_RESPSEQNO);        memcpy(tfracceptstru.cReqSeqNo, szReqSeqNo + 6, SIZE_REQSEQNO);        VERIFY_NORMAL(ApCaRecord(&tfracceptstru, sizeof(tfracceptstru),                                 "atm", TRUE));                                         memcpy(cMsg, &tfracceptstru, sizeof(tfracceptstru));	    sprintf(szMsgLen, "%6d", sizeof(tfracceptstru));    }    DeleteXml(&xmlstruReq);    DeleteXml(&xmlstruResp);    return NORMAL;}RESULT HandlePin(char cMsg[SIZE_MSG_ATM], char szMsgLen[6 + 1], ATMSTRU atmstru){    XMLSTRU xmlstruReq;    XMLSTRU xmlstruResp;    PXMLSTRU pxmlstruReq;    PXMLSTRU pxmlstruResp;    PPINSTRU ppinstru;    PINACCEPTSTRU pinacceptstru;    PINREJECTSTRU pinrejectstru;    char szReqId[AP_LEN_ID + 1];    char szReqDate[AP_LEN_DATE + 1];    char szReqTime[AP_LEN_TIME + 1];    char szReqSeqNo[AP_LEN_SEQNO + 1];    char szAccNo[AP_LEN_ACCNO + 1];    char szAtmAccNo[SIZE_ACCNO + 1];    char szExpDate[AP_LEN_EXPDATE + 1];    char szTrack2[AP_LEN_TRACK2 + 1];    char szTrack3[AP_LEN_TRACK3 + 1];    char szAccPwd[AP_LEN_ACCPWD + 1];    char szNewAccPwd[AP_LEN_ACCPWD + 1];    char szRespCode[AP_LEN_RESPCODE + 1];    char szRespSeqNo[AP_LEN_SEQNO + 1];    char szRespDate[AP_LEN_DATE + 1];    char szRespTime[AP_LEN_TIME + 1];    char szDateTimeDays[SIZE_DATETIMEDAYS + 1];    memset(&pinacceptstru, '0', sizeof(pinacceptstru));    memset(&pinrejectstru, '0', sizeof(pinrejectstru));    memset(&xmlstruReq, 0, sizeof(xmlstruReq));    memset(&xmlstruResp, 0, sizeof(xmlstruResp));    bufclr(szReqId);    bufclr(szReqDate);    bufclr(szReqTime);    bufclr(szReqSeqNo);    bufclr(szAccNo);    bufclr(szAtmAccNo);    bufclr(szExpDate);    bufclr(szTrack2);    bufclr(szTrack3);    bufclr(szAccPwd);    bufclr(szNewAccPwd);    bufclr(szRespCode);    bufclr(szRespSeqNo);    bufclr(szRespDate);    bufclr(szRespTime);    bufclr(szDateTimeDays);    pxmlstruReq = &xmlstruReq;    pxmlstruResp = &xmlstruResp;    /*     * Convert string to xml.     */    ppinstru = (PPINSTRU)cMsg;        memcpy(szReqId, atmstru.szAtmNo, AP_LEN_ID);	SetAtmReqSeqNo(szReqSeqNo, ppinstru->cReqSeqNo);    memcpy(szAtmAccNo, ppinstru->cAccNo, SIZE_ACCNO);    memcpy(szTrack2, ppinstru->cTrack2, AP_LEN_TRACK2);    memcpy(szTrack3, ppinstru->cTrack3, AP_LEN_TRACK3);    EncryptTrack2(szTrack2, -1);    EncryptTrack3(szTrack3, -1);    ASSURE_NORMAL(GetExpDate(szTrack2, szExpDate))    EncryptAtm(szAtmAccNo, ppinstru->cEncryptData, -1);    memcpy(szAccPwd, ppinstru->cEncryptData + 10, AP_LEN_ACCPWD);    strcpy(szAccNo, szAtmAccNo);    EncryptNewPin(ppinstru->cNewPin + 2, szAccNo, -1);    memcpy(szNewAccPwd, ppinstru->cNewPin + 2, AP_LEN_ACCPWD);        GetAtmDate(szReqDate);    GetAtmTime(szReqTime);    ASSURE_NORMAL(CreateXml(pxmlstruReq, FALSE, AP_PATH_ROOT, NULL))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_MSGTYPE, AP_MSGTYPE_SUBMITREQ))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_CHANGEPIN))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_REQDATE, szReqDate))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_REQTIME, szReqTime))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_REQID, szReqId))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_REQSEQNO, szReqSeqNo))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_ACCNO, FormatAccNo(szAccNo)))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_EXPDATE, szExpDate))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACK2, szTrack2))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACK3, szTrack3))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "Y"))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_ACCPWD, szAccPwd))    ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_ACCNEWPWD, szNewAccPwd))    ASSURE_NORMAL(ApCaSubmit(pxmlstruReq, pxmlstruResp))    /*     * Convert xml to string.     */    memset(cMsg, 0, SIZE_MSG_ATM);        AP_DEMAND_EXT(AP_PATH_RESPCODE, szRespCode);    AP_DEMAND_EXT(AP_PATH_RESPDATE, szRespDate);    AP_DEMAND_EXT(AP_PATH_RESPTIME, szRespTime);    SetDateTimeDays(szRespDate, szRespTime, szDateTimeDays);    if (strcmp(szRespCode, AP_RESPCODE_ACCEPT) != 0)    {        pinrejectstru.cTfc = 'A';        pinrejectstru.cTpc = 'G';        pinrejectstru.cOperateMode = 'P';        pinrejectstru.cLimitFlag = '1';        memcpy(pinrejectstru.cDateTime, szDateTimeDays, SIZE_DATETIMEDAYS);        memcpy(pinrejectstru.cRejectCode, szRespCode, SIZE_REJECTCODE);        memcpy(pinrejectstru.cReqSeqNo,  szReqSeqNo + 6, SIZE_REQSEQNO);        VERIFY_NORMAL(ApCaRecord(&pinrejectstru, sizeof(pinrejectstru),                                 "atm", TRUE));        memcpy(cMsg, &pinrejectstru, sizeof(pinrejectstru));        sprintf(szMsgLen, "%6d", sizeof(pinrejectstru));    }    else    {        VERIFY_NORMAL(AP_DEMAND_EXT(AP_PATH_RESPSEQNO, szRespSeqNo));        pinacceptstru.cTfc = 'A';        pinacceptstru.cTpc = 'S';        pinacceptstru.cOperateMode = 'P';        pinacceptstru.cAccepted = '1';        memcpy(pinacceptstru.cAccNo, szAtmAccNo, SIZE_ACCNO);        memcpy(pinacceptstru.cDateTime, szDateTimeDays, SIZE_DATETIMEDAYS);        memcpy(pinacceptstru.cRespSeqNo, szRespSeqNo, SIZE_RESPSEQNO);        memcpy(pinacceptstru.cReqSeqNo, szReqSeqNo + 6, SIZE_REQSEQNO);        VERIFY_NORMAL(ApCaRecord(&pinacceptstru, sizeof(pinacceptstru),                                 "atm", TRUE));        memcpy(cMsg, &pinacceptstru, sizeof(pinacceptstru));        sprintf(szMsgLen, "%6d", sizeof(pinacceptstru));    }    DeleteXml(&xmlstruReq);    DeleteXml(&xmlstruResp);    return NORMAL;}RESULT HandleDep(char cMsg[SIZE_MSG_ATM], char szMsgLen[6 + 1], ATMSTRU atmstru){    XMLSTRU xmlstruReq;    XMLSTRU xmlstruResp;    PXMLSTRU pxmlstruReq;    PXMLSTRU pxmlstruResp;    PDEPSTRU pdepstru;    DEPACCEPTSTRU depacceptstru;    DEPREJECTSTRU deprejectstru;    char szReqId[AP_LEN_ID + 1];    char szReqDate[AP_LEN_DATE + 1];    char szReqTime[AP_LEN_TIME + 1];    char szReqSeqNo[AP_LEN_SEQNO + 1];    char szAccNo[AP_LEN_ACCNO + 1];    char szAtmAccNo[SIZE_ACCNO + 1];    char szExpDate[AP_LEN_EXPDATE + 1];    char szTrack2[AP_LEN_TRACK2 + 1];    char szTrack3[AP_LEN_TRACK3 + 1];    char szAmt[AP_LEN_AMT + 1];    char szTransAmt[SIZE_TRANSAMT + 1];    char szRespCode[AP_LEN_RESPCODE + 1];    char szRespSeqNo[AP_LEN_SEQNO + 1];    char szRespDate[AP_LEN_DATE + 1];    char szRespTime[AP_LEN_TIME + 1];    char szDateTimeDays[SIZE_DATETIMEDAYS + 1];

⌨️ 快捷键说明

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