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

📄 handle.cpre

📁 商业银行前置系统
💻 CPRE
📖 第 1 页 / 共 5 页
字号:
RESULT HandleConsume(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(GetConsume(&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(SetConsume(piso8583stru, &xmlstruResp, bIsReverse)))    	    if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_ACCEPT))    	        RETURN_RESULT(EXCEPTION)    }    RETURN_RESULT(NORMAL)}/* * 退货。 */RESULT GetRefund(PXMLSTRU pxmlstruReq, PCISO8583STRU piso8583stru){    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_MSGTYPE, AP_MSGTYPE_SUBMITREQ));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_REFUND));    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(GetReqSeqNo(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetOrgReqType(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAccNo(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAccPwd(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetCurrType(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAmt(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetFee(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetExpDate(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetMerchNo(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetMerchType(piso8583stru, pxmlstruReq));        VERIFY_NORMAL(GetAuthCode(pxmlstruReq, piso8583stru));    ASSERT_NORMAL(GetSettleDate(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAgent(piso8583stru, pxmlstruReq));        return NORMAL;}RESULT SetRefund(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(SetMac(piso8583stru, cTransMac, BIT_MAC128));    return NORMAL;}RESULT HandleRefund(PISO8583STRU piso8583stru){    UINT nBit = BIT_MAC128;    XMLSTRU xmlstruReq, xmlstruResp;    UINT nDataLen;        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(GetRefund(&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(SetRefund(piso8583stru, &xmlstruResp)))    	    if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_ACCEPT))                RETURN_RESULT(EXCEPTION)    }    RETURN_RESULT(NORMAL)}/* * 预授权。 */RESULT GetAuth(PXMLSTRU pxmlstruReq, PCISO8583STRU piso8583stru,                BOOL bIsReverse){      ASSERT_NORMAL(INSERT_MSGTYPE(bIsReverse));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_AUTH));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_REQID, AP_REQID_ISI));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_MANUALAUTH, "N"));        ASSERT_NORMAL(GetReqDate(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetReqTime(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));    ASSERT_NORMAL(GetOrgReqType(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAgent(piso8583stru, pxmlstruReq));    if (!bIsReverse)    {        ASSERT_NORMAL(GetReqSeqNo(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetAccPwd(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetTrack2(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetTrack3(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetExpDate(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "Y"));    }    else    {        ASSERT_NORMAL(GetReqSeqNoInReverse(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "N"));    }            return NORMAL;}RESULT SetAuth(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));        if (!bIsReverse)    {        ASSERT_NORMAL(SetExpDate(pxmlstruResp, piso8583stru));        ASSERT_NORMAL(SetAuthResp(pxmlstruResp, piso8583stru));        ASSERT_NORMAL(SetAddAmt(pxmlstruResp, piso8583stru));        }    ASSERT_NORMAL(SetMac(piso8583stru, cTransMac,                         bIsReverse ? BIT_MAC128 : BIT_MAC64));    return NORMAL;}RESULT HandleAuth(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(GetAuth(&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(SetAuth(piso8583stru, &xmlstruResp, bIsReverse)))                                           	    if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_ACCEPT))                RETURN_RESULT(EXCEPTION)    }    RETURN_RESULT(NORMAL)}/* * 柜台授权。 */RESULT GetManualAuth(PXMLSTRU pxmlstruReq, PCISO8583STRU piso8583stru,                      BOOL bIsReverse){    ASSERT_NORMAL(INSERT_MSGTYPE(bIsReverse));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_AUTH));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_REQID, AP_REQID_ISI));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_MANUALAUTH, "Y"));    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(GetAmt(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetFee(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(GetCertInfo(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetExpDate(piso8583stru, pxmlstruReq));    }    else        ASSERT_NORMAL(GetReqSeqNoInReverse(piso8583stru, pxmlstruReq));    return NORMAL;}RESULT SetManualAuth(PISO8583STRU piso8583stru, PCXMLSTRU pxmlstruResp,                      BOOL bIsReverse){    SetBitInIso8583(piso8583stru, BIT_ENTRYMODE, NULL, 0);    SetBitInIso8583(piso8583stru, BIT_PINCAPTURECODE, NULL, 0);    SetBitInIso8583(piso8583stru, BIT_ACCEPTORNAME, NULL, 0);       SetBitInIso8583(piso8583stru, BIT_ORGDATA, NULL, 0);       ASSERT_NORMAL(SetRespCode(pxmlstruResp, piso8583stru));    ASSERT_NORMAL(SetAddResp(pxmlstruResp, piso8583stru));        if (!bIsReverse)    {        ASSERT_NORMAL(SetExpDate(pxmlstruResp, piso8583stru));        ASSERT_NORMAL(SetAuthResp(pxmlstruResp, piso8583stru));        ASSERT_NORMAL(SetAddAmt(pxmlstruResp, piso8583stru));        }    ASSERT_NORMAL(SetMac(piso8583stru, cTransMac,                         bIsReverse ? BIT_MAC128 : BIT_MAC64));    return NORMAL;}RESULT HandleManualAuth(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(GetManualAuth(&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(SetManualAuth(piso8583stru, &xmlstruResp,                                          bIsReverse)))                                             	    if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_ACCEPT))                RETURN_RESULT(EXCEPTION)    }    RETURN_RESULT(NORMAL)}/* * 授权完成。 */RESULT GetAuthSettle(PXMLSTRU pxmlstruReq, PCISO8583STRU piso8583stru,                      BOOL bIsReverse){      ASSERT_NORMAL(INSERT_MSGTYPE(bIsReverse));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_AUTHSETTLE));    ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_REQID, AP_REQID_ISI));    ASSERT_NORMAL(GetReqDate(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetReqTime(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(GetOrgReqType(piso8583stru, pxmlstruReq));    ASSERT_NORMAL(GetAgent(piso8583stru, pxmlstruReq));    if (!bIsReverse)    {        ASSERT_NORMAL(GetReqSeqNo(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetOrgReqSeqNo(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetAccPwd(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetTrack2(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetTrack3(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(GetExpDate(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "Y"));    }        else    {        ASSERT_NORMAL(GetReqSeqNoInReverse(piso8583stru, pxmlstruReq));        ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "N"));    }    return NORMAL;}RESULT SetAuthSettle(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));        if (!bIsReverse)       {

⌨️ 快捷键说明

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