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

📄 handle.cpre

📁 商业银行前置系统
💻 CPRE
📖 第 1 页 / 共 5 页
字号:
 RESULT HandleTransferOut(PISO8583STRU piso8583stru){    UINT nBit = 0;    XMLSTRU xmlstruReq, xmlstruResp;    BOOL bIsReverse;    memset(&xmlstruReq, 0, sizeof(xmlstruReq));    memset(&xmlstruResp, 0, sizeof(xmlstruResp));                bIsReverse = IsReverse(piso8583stru);    nBit = bIsReverse ? BIT_MAC128 : BIT_MAC64;        ASSURE_NORMAL(VerifyMac(piso8583stru, cTransMac, nBit))    ASSURE_NORMAL(CreateXml(&xmlstruReq, FALSE, AP_PATH_ROOT, NULL))    ASSURE_NORMAL(GetTransferOut(&xmlstruReq, piso8583stru, bIsReverse))    ASSURE_NORMAL(RecordJournal(&xmlstruReq, piso8583stru))    ASSURE_NORMAL(ApCaSubmit(&xmlstruReq, &xmlstruResp))    if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_EXCEPTION))        RETURN_RESULT(EXCEPTION)    else    {        if (!VERIFY_NORMAL(SetTransferOut(piso8583stru, &xmlstruResp,                                          bIsReverse)))                                            	    if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_ACCEPT))                RETURN_RESULT(EXCEPTION)    }    RETURN_RESULT(NORMAL)}/* * 改密。 */RESULT GetChangePin(PXMLSTRU pxmlstruReq, PCISO8583STRU piso8583stru){    ASSERT_NORMAL(INSERT_MSGTYPE(FALSE));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_CHANGEPIN));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_REQID, AP_REQID_ISI));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "Y"));        ASSERT_NORMAL(GetReqDate(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetReqTime(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetReqSeqNo(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAccNo(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAccPwd(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAccNewPwd(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetCurrType(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetTrack2(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetTrack3(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetExpDate(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetMerchNo(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetMerchType(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetSettleDate(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetOrgReqType(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAgent(piso8583stru, pxmlstruReq));        return NORMAL;}RESULT SetChangePin(PISO8583STRU piso8583stru, PCXMLSTRU pxmlstruResp){    SetBitInIso8583(piso8583stru, BIT_ENTRYMODE, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_PINCAPTURECODE, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_TRACK2, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_TRACK3, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_ACCEPTORNAME, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_PIN, NULL, 0);    SetBitInIso8583(piso8583stru, BIT_ORGDATA, NULL, 0);            ASSERT_NORMAL(SetRespCode(pxmlstruResp, piso8583stru));    ASSERT_NORMAL(SetAddResp(pxmlstruResp, piso8583stru));        ASSERT_NORMAL(SetExpDate(pxmlstruResp, piso8583stru));    ASSERT_NORMAL(SetMac(piso8583stru, cTransMac, BIT_MAC128));    return NORMAL;} RESULT HandleChangePin(PISO8583STRU piso8583stru){    UINT nBit = BIT_MAC128;    XMLSTRU xmlstruReq, xmlstruResp;    memset(&xmlstruReq, 0, sizeof(xmlstruReq));    memset(&xmlstruResp, 0, sizeof(xmlstruResp));                ASSURE_NORMAL(VerifyMac(piso8583stru, cTransMac, BIT_MAC128))        ASSURE_NORMAL(CreateXml(&xmlstruReq, FALSE, AP_PATH_ROOT, NULL))    ASSURE_NORMAL(GetChangePin(&xmlstruReq, piso8583stru))        ASSURE_NORMAL(RecordJournal(&xmlstruReq, piso8583stru))    ASSURE_NORMAL(ApCaSubmit(&xmlstruReq, &xmlstruResp))    if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_EXCEPTION))        RETURN_RESULT(EXCEPTION)    else    {        if (!VERIFY_NORMAL(SetChangePin(piso8583stru, &xmlstruResp)))    	    if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_ACCEPT))                RETURN_RESULT(EXCEPTION)    }        RETURN_RESULT(NORMAL)}/* * 挂失。 */RESULT GetLost(PXMLSTRU pxmlstruReq, PCISO8583STRU piso8583stru,                BOOL bIsReverse){      ASSERT_NORMAL(INSERT_MSGTYPE(bIsReverse));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_LOST));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_REQID, AP_REQID_ISI));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "N"));    ASSERT_NORMAL(GetReqDate(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetReqTime(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAccNo(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetCurrType(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetMerchNo(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetMerchType(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetSettleDate(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetOrgReqType(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAgent(piso8583stru, pxmlstruReq));    if (!bIsReverse)    {        ASSERT_NORMAL(GetReqSeqNo(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetAccPwd(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetExpDate(piso8583stru, pxmlstruReq));    }    else                ASSERT_NORMAL(GetReqSeqNoInReverse(piso8583stru, pxmlstruReq));    return NORMAL;}RESULT SetLost(PISO8583STRU piso8583stru, PCXMLSTRU pxmlstruResp,                BOOL bIsReverse){        SetBitInIso8583(piso8583stru, BIT_ENTRYMODE, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_PINCAPTURECODE, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_TRACK2, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_TRACK3, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_ACCEPTORNAME, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_PIN, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_ORGDATA, NULL, 0);        ASSERT_NORMAL(SetRespCode(pxmlstruResp, piso8583stru));    ASSERT_NORMAL(SetAddResp(pxmlstruResp, piso8583stru));        ASSERT_NORMAL(SetMac(piso8583stru, cTransMac,                         bIsReverse ? BIT_MAC128 : BIT_MAC64));    return NORMAL;} RESULT HandleLost(PISO8583STRU piso8583stru){    UINT nBit = 0;    XMLSTRU xmlstruReq, xmlstruResp;    BOOL bIsReverse;    memset(&xmlstruReq, 0, sizeof(xmlstruReq));    memset(&xmlstruResp, 0, sizeof(xmlstruResp));                bIsReverse = IsReverse(piso8583stru);    nBit = bIsReverse ? BIT_MAC128 : BIT_MAC64;        ASSURE_NORMAL(VerifyMac(piso8583stru, cTransMac, nBit))    ASSURE_NORMAL(CreateXml(&xmlstruReq, FALSE, AP_PATH_ROOT, NULL))    ASSURE_NORMAL(GetLost(&xmlstruReq, piso8583stru, bIsReverse))    ASSURE_NORMAL(RecordJournal(&xmlstruReq, piso8583stru))    ASSURE_NORMAL(ApCaSubmit(&xmlstruReq, &xmlstruResp))    if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_EXCEPTION))        RETURN_RESULT(EXCEPTION)    else    {        if (!VERIFY_NORMAL(SetLost(piso8583stru, &xmlstruResp, bIsReverse)))    	    if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_ACCEPT))                RETURN_RESULT(EXCEPTION)    }    RETURN_RESULT(NORMAL)}/* * 撤消。 */RESULT GetOrgTransCode(PCISO8583STRU piso8583stru, PXMLSTRU pxmlstruReq) {    char szProcessCode[SIZE_PROCESSCODE + 1];    char szTransCode[AP_LEN_TRANSCODE + 1];    UINT nSize;        bufclr(szTransCode);    bufclr(szProcessCode);          nSize = SIZE_PROCESSCODE;    ASSERT_NORMAL(GetBitInIso8583(piso8583stru, BIT_PROCESSCODE,                                  szProcessCode, &nSize));        if (strcmp(szProcessCode, "230000") == 0)        strcpy(szTransCode, AP_TRANSCODE_CS_AUTHSETTLE);            else if (strcmp(szProcessCode, "020000") == 0)        strcpy(szTransCode, AP_TRANSCODE_CS_DEPOSIT);            else if (strcmp(szProcessCode, "220000") == 0)        strcpy(szTransCode, AP_TRANSCODE_CS_WITHDRAW);            else if (strcmp(szProcessCode, "200000") == 0)    {        char szConditionCode[BIT_CONDITIONCODE + 1];                bufclr(szConditionCode);                nSize = SIZE_CONDITIONCODE;        ASSERT_NORMAL(GetBitInIso8583(piso8583stru, BIT_CONDITIONCODE,                                      szConditionCode, &nSize));                                              if (strcmp(szConditionCode, "06") == 0)        {            strcpy(szTransCode, AP_TRANSCODE_CS_AUTH);            ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_MANUALAUTH, "N"));        }        else            strcpy(szTransCode, AP_TRANSCODE_CS_CONSUME);    }    else if (strcmp(szProcessCode, "203000") == 0)    {        strcpy(szTransCode, AP_TRANSCODE_CS_AUTH);        ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_MANUALAUTH, "Y"));    }    else if (strcmp(szProcessCode, "481000") == 0)        strcpy(szTransCode,  AP_TRANSCODE_CS_TRANSFEROUT);    else if (strcmp(szProcessCode, "480010") == 0)        strcpy(szTransCode,  AP_TRANSCODE_CS_TRANSFERIN);    else if (strcmp(szProcessCode, "601000") == 0)        strcpy(szTransCode,  AP_TRANSCODE_CS_LOST);    else        ASSERT_NORMAL(INVALID);        ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_ORGTRANSCODE, szTransCode));    return NORMAL;}RESULT GetCancel(PXMLSTRU pxmlstruReq, PCISO8583STRU piso8583stru,                  BOOL bIsReverse){    ASSERT_NORMAL(INSERT_MSGTYPE(bIsReverse));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_CANCEL));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_REQID, AP_REQID_ISI));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "N"));    ASSERT_NORMAL(GetReqDate(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetReqTime(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetOrgRespSeqNo(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetOrgReqType(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAccNo(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetCurrType(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAmt(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetFee(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetMerchNo(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetMerchType(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetSettleDate(piso8583stru, pxmlstruReq));    VERIFY_NORMAL(GetAuthCode(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAgent(piso8583stru, pxmlstruReq));    if (!bIsReverse)    {        ASSERT_NORMAL(GetReqSeqNo(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetOrgReqSeqNo(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetOrgTransCode(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetExpDate(piso8583stru, pxmlstruReq));    }    else         ASSERT_NORMAL(GetReqSeqNoInReverse(piso8583stru, pxmlstruReq));    return NORMAL;}RESULT SetCancel(PISO8583STRU piso8583stru, PCXMLSTRU pxmlstruResp,                  BOOL bIsReverse){        SetBitInIso8583(piso8583stru, BIT_ENTRYMODE, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_PINCAPTURECODE, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_TRACK2, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_TRACK3, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_ACCEPTORNAME, NULL, 0);        SetBitInIso8583(piso8583stru, BIT_PIN, NULL, 0);     SetBitInIso8583(piso8583stru, BIT_ORGDATA, NULL, 0);     ASSERT_NORMAL(SetRespCode(pxmlstruResp, piso8583stru));    ASSERT_NORMAL(SetAddResp(pxmlstruResp, piso8583stru));        ASSERT_NORMAL(SetMac(piso8583stru, cTransMac, BIT_MAC128));    return NORMAL;} RESULT HandleCancel(PISO8583STRU piso8583stru){    UINT nBit = BIT_MAC128;    XMLSTRU xmlstruReq, xmlstruResp;    BOOL bIsReverse;    memset(&xmlstruReq, 0, sizeof(xmlstruReq));    memset(&xmlstruResp, 0, sizeof(xmlstruResp));                bIsReverse = IsReverse(piso8583stru);    ASSURE_NORMAL(VerifyMac(piso8583stru, cTransMac, BIT_MAC128))    ASSURE_NORMAL(CreateXml(&xmlstruReq, FALSE, AP_PATH_ROOT, NULL))    ASSURE_NORMAL(GetCancel(&xmlstruReq, piso8583stru, bIsReverse))    ASSURE_NORMAL(RecordJournal(&xmlstruReq, piso8583stru))    ASSURE_NORMAL(ApCaSubmit(&xmlstruReq, &xmlstruResp))    if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_EXCEPTION))        RETURN_RESULT(EXCEPTION)    else    {        if (!VERIFY_NORMAL(SetCancel(piso8583stru, &xmlstruResp, bIsReverse)))    	    if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_ACCEPT))                RETURN_RESULT(EXCEPTION)    }    RETURN_RESULT(NORMAL)}/* * 对帐。 */void GetNumInSettle(PSTR pszNum){    sprintf(pszNum, "%d", atoi(pszNum));}void GetAmtInSettle(PSTR pszAmt){    double dAmt;        if (*pszAmt == 'C')        dAmt = atof(pszAmt + 1) / 100.0;        

⌨️ 快捷键说明

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