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

📄 converse.cpre

📁 商业银行前置系统
💻 CPRE
📖 第 1 页 / 共 2 页
字号:
}RESULT GetAcceptorName(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szMerchName[AP_LEN_MERCHNAME + 1];    char szReqType[AP_LEN_REQTYPE + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_REQTYPE, szReqType));    if (strcmp(szReqType, AP_REQTYPE_ATM) == 0)        sprintf(szMerchName, "%-40s", "CHNLNDLCPABC");    else        ASSERT_NORMAL(AP_DEMAND(AP_PATH_MERCHNAME, szMerchName));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_ACCEPTORNAME, szMerchName,                                  SIZE_ACCEPTORNAME));    return NORMAL;}RESULT GetCurrCode(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szCurrType[AP_LEN_CURRTYPE + 1];    if (AP_DEMAND(AP_PATH_CURRTYPE, szCurrType) != NORMAL)        strcpy(szCurrType, AP_CURRTYPE_CNY);    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_CURRCODE, szCurrType,                                  SIZE_CURRCODE));    return NORMAL;}RESULT GetPin(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru, PUCHAR pcKey){    UCHAR cPin[SIZE_PIN];    char szAccPwd[AP_LEN_ACCPWD + 1];    char szAccNo[AP_LEN_ACCNO + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_ACCPWD, szAccPwd));    ASSERT_NORMAL(AP_DEMAND(AP_PATH_ACCNO, szAccNo));    ASSERT_NORMAL(Ansix98(cPin, szAccPwd, AP_LEN_ACCPWD, pcKey, szAccNo, TRUE));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_PIN, cPin, SIZE_PIN));    return NORMAL;}RESULT GetSecurityCtrlInfo(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szAccPwd[AP_LEN_ACCPWD + 1];    if (AP_DEMAND(AP_PATH_ACCPWD, szAccPwd) == NORMAL)        ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_SECURITYCTRLINFO,                                      "2000000000000000",                                      SIZE_SECURITYCTRLINFO));    return NORMAL;}RESULT GetAcqReserve(PXMLSTRU pxmlstruReq, PISO8583STRU piso8583stru){    char szKickbackRate[AP_LEN_KICKBACKRATE + 1];    char szAcqReserve[SIZE_ACQRESERVE_MAX + 1];    char szReqType[AP_LEN_REQTYPE + 1];    ASSERT_NORMAL(AP_DEMAND(AP_PATH_REQTYPE, szReqType));    if (strcmp(szReqType, AP_REQTYPE_ATM) == 0)        strcpy(szAcqReserve, "000000");    else    {        ASSERT_NORMAL(AP_DEMAND(AP_PATH_KICKBACKRATE, szKickbackRate));        sprintf(szAcqReserve, "%06.0lf", atof(szKickbackRate) * 10000.00);    }    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_ACQRESERVE,                                  szAcqReserve, strlen(szAcqReserve)));    return NORMAL;}RESULT SetBal(PXMLSTRU pxmlstruResp, PISO8583STRU piso8583stru){    UINT nSize;    char szBal[AP_LEN_BAL + 1];    char szAddAmt[SIZE_ADDAMT_MAX + 1];    nSize = SIZE_ADDAMT_MAX;    bufclr(szAddAmt);    ASSERT_NORMAL(GetBitInIso8583(piso8583stru, BIT_ADDAMT, szAddAmt, &nSize));    DETECT(nSize == SIZE_ADDAMT_MAX);    bufclr(szBal);    if (memcmp(szAddAmt + 2, "01", 2) == 0)    {        DETECT(memcmp(szAddAmt + 4, AP_CURRTYPE_CNY, AP_LEN_CURRTYPE) == 0);        memcpy(szBal, szAddAmt + 8, 12);        if (szAddAmt[7] == 'C')            sprintf(szBal, "%19.2lf", atof(szBal) / 100);        else if (szAddAmt[7] == 'D')            sprintf(szBal, "%19.2lf", -atof(szBal) / 100);        else            DETECT(FALSE);    }    else if (memcmp(szAddAmt + 22, "01", 2) == 0)    {        DETECT(memcmp(szAddAmt + 24, AP_CURRTYPE_CNY, AP_LEN_CURRTYPE) == 0);        memcpy(szBal, szAddAmt + 28, 12);        if (szAddAmt[27] == 'C')            sprintf(szBal, "%19.2lf", atof(szBal) / 100);        else if (szAddAmt[27] == 'D')            sprintf(szBal, "%19.2lf", -atof(szBal) / 100);        else            DETECT(FALSE);    }    else        DETECT(FALSE);    ASSERT_NORMAL(AP_INSERT(AP_PATH_BAL, szBal));    return NORMAL;}RESULT SetAvailBal(PXMLSTRU pxmlstruResp, PISO8583STRU piso8583stru){    UINT nSize;    char szAvailBal[AP_LEN_BAL + 1];    char szAddAmt[SIZE_ADDAMT_MAX + 1];    nSize = SIZE_ADDAMT_MAX;    bufclr(szAddAmt);    ASSERT_NORMAL(GetBitInIso8583(piso8583stru, BIT_ADDAMT, szAddAmt, &nSize));    DETECT(nSize == SIZE_ADDAMT_MAX);    bufclr(szAvailBal);    if (memcmp(szAddAmt + 2, "02", 2) == 0)    {        DETECT(memcmp(szAddAmt + 4, AP_CURRTYPE_CNY, AP_LEN_CURRTYPE) == 0);        memcpy(szAvailBal, szAddAmt + 8, 12);        if (szAddAmt[7] == 'C')            sprintf(szAvailBal, "%19.2lf", atof(szAvailBal) / 100);        else if (szAddAmt[7] == 'D')            sprintf(szAvailBal, "%19.2lf", -atof(szAvailBal) / 100);        else            DETECT(FALSE);    }    else if (memcmp(szAddAmt + 22, "02", 2) == 0)    {        DETECT(memcmp(szAddAmt + 24, AP_CURRTYPE_CNY, AP_LEN_CURRTYPE) == 0);        memcpy(szAvailBal, szAddAmt + 28, 12);        if (szAddAmt[27] == 'C')            sprintf(szAvailBal, "%19.2lf", atof(szAvailBal) / 100);        else if (szAddAmt[27] == 'D')            sprintf(szAvailBal, "%19.2lf", -atof(szAvailBal) / 100);        else            DETECT(FALSE);    }    else        DETECT(FALSE);    ASSERT_NORMAL(AP_INSERT(AP_PATH_AVAILBAL, szAvailBal));    return NORMAL;}RESULT SetRespCode(PXMLSTRU pxmlstruResp, PISO8583STRU piso8583stru){    UINT n = 0, nSize;    char szRespCode[SIZE_RESPCODE + 1];    bufclr(szRespCode);    nSize = SIZE_RESPCODE;    ASSERT_NORMAL(GetBitInIso8583(piso8583stru, BIT_RESPCODE, szRespCode,                                  &nSize));    while (pszRespCode[n][0] != NULL)    {        if (strcmp(szRespCode, pszRespCode[n][0]) == 0)        {            ASSERT_NORMAL(AP_UPDATE(AP_PATH_RESPCODE, pszRespCode[n][1]));            return NORMAL;        }        n++;    }    ASSERT_NORMAL(AP_UPDATE(AP_PATH_RESPCODE, AP_RESPCODE_REJECT));    return NORMAL;}RESULT SetExpDate(PXMLSTRU pxmlstruResp, PISO8583STRU piso8583stru){    UINT nSize;    char szExpDate[SIZE_EXPDATE + 1];    bufclr(szExpDate);    nSize = SIZE_EXPDATE;    ASSERT_NORMAL(GetBitInIso8583(piso8583stru, BIT_EXPDATE, szExpDate,                                  &nSize));    ASSERT_NORMAL(AP_INSERT(AP_PATH_EXPDATE, szExpDate));    return NORMAL;}RESULT SetAuthCode(PXMLSTRU pxmlstruResp, PISO8583STRU piso8583stru){    UINT nSize;    char szAuthResp[SIZE_AUTHRESP + 1];    bufclr(szAuthResp);    nSize = SIZE_AUTHRESP;    ASSERT_NORMAL(GetBitInIso8583(piso8583stru, BIT_AUTHRESP, szAuthResp,                                  &nSize));    ASSERT_NORMAL(AP_INSERT(AP_PATH_AUTHCODE, szAuthResp));    return NORMAL;}RESULT SetSettleDate(PXMLSTRU pxmlstruResp, PISO8583STRU piso8583stru){    UINT nSize;    char szSettleDate[AP_LEN_DATE + 1];    TIMESTRU timestru;    bufclr(szSettleDate);    nSize = SIZE_SETTLEDATE;    timestru = GetTime();    sprintf(szSettleDate, "%04d", timestru.nYear);    ASSERT_NORMAL(GetBitInIso8583(piso8583stru, BIT_SETTLEDATE,                                  szSettleDate + 4, &nSize));    ASSERT_NORMAL(AP_INSERT(AP_PATH_SETTLEDATE, szSettleDate));    return NORMAL;}RESULT GetOrgInfo(PCSTR pszSeqNo, PISO8583STRU piso8583stru){    EXEC SQL BEGIN DECLARE SECTION;    DSIDSTRU dsidstru;    EXEC SQL END DECLARE SECTION;        char szOrgData[SIZE_ORGDATA + 1];        strcpy(dsidstru.szSeqNo, pszSeqNo);        EXEC SQL SELECT * FROM dsid INTO :dsidstru WHERE seqno = :dsidstru.szSeqNo;    ASSERT_SQL_NORMAL();        ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_MSGID, dsidstru.szMsgId,                                  SIZE_MSGID));    TrimString(dsidstru.szPan);    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_PAN, dsidstru.szPan,                                  strlen(dsidstru.szPan)));                                      ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_PROCESSCODE,                                  dsidstru.szProcessCode, SIZE_PROCESSCODE));                                      ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_TRANSAMT,                                  dsidstru.szTransAmt, SIZE_TRANSAMT));                                      ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_TRANSMISSDATETIME,                                  dsidstru.szTransmissDateTime,                                   SIZE_TRANSMISSDATETIME));                                      ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_LOCALTRANSTIME,                                   dsidstru.szLocalTransTime,                                  SIZE_LOCALTRANSTIME));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_LOCALTRANSDATE,                                   dsidstru.szLocalTransDate,                                  SIZE_LOCALTRANSDATE));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_MERCHTYPE,                                  dsidstru.szMerchType, SIZE_MERCHTYPE));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_ENTRYMODE,                                  dsidstru.szEntryMode, SIZE_ENTRYMODE));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_CONDITIONCODE,                                  dsidstru.szConditionCode,                                  SIZE_CONDITIONCODE));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_ACQID, dsidstru.szAcqId,                                  SIZE_ID));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_FORWARDID,                                  dsidstru.szForwardId, SIZE_ID));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_RETRIEVALREFNO, pszSeqNo,                                  SIZE_RETRIEVALREFNO));    if (strcmp(dsidstru.szAuthResp, "      ") != 0)        ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_AUTHRESP,                                      dsidstru.szAuthResp, SIZE_AUTHRESP));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_TERMID, dsidstru.szTermId,                                  SIZE_TERMID));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_ACCEPTORID,                                  dsidstru.szAcceptorId, SIZE_ACCEPTORID));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_ACCEPTORNAME,                                  dsidstru.szAcceptorName, SIZE_ACCEPTORNAME));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_CURRCODE,                                  dsidstru.szCurrCode, SIZE_CURRCODE));    strcpy(szOrgData, dsidstru.szMsgId);    strcat(szOrgData, pszSeqNo + 6);    strcat(szOrgData, dsidstru.szTransmissDateTime);    strcat(szOrgData, "000");    strncat(szOrgData, dsidstru.szAcqId, SIZE_ID);    strcat(szOrgData, "000");    strncat(szOrgData, dsidstru.szForwardId, SIZE_ID);    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_ORGDATA, szOrgData,                                   SIZE_ORGDATA));    ASSERT_NORMAL(SetBitInIso8583(piso8583stru, BIT_ACQRESERVE,                                  dsidstru.szAcqReserve,                                   strlen(dsidstru.szAcqReserve)));    return NORMAL;}/* End of this file */

⌨️ 快捷键说明

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