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

📄 sp020113.cpre

📁 商业银行前置系统
💻 CPRE
字号:
/* * 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-30 Shuming Pang  - create implementation file for  *                            cancel */#include <sybtesql.h> #include "ap.h"#include "apsp.h"#include "apsc.h"EXEC SQL INCLUDE sqlca;EXEC SQL INCLUDE "dsi.h";EXEC SQL INCLUDE "dsiext.h";#define RETURN_RESP(pszRespCode) \    { \        ApUpdateRespCode(pxmlstruResp, pszRespCode); \        DeleteIso8583(&iso8583stru); \        EXEC CICS RETURN; \    }#define ASSURE_NORMAL(r) \    { \        if (!VERIFY_NORMAL(rTemp = (r))) \        { \            if (rTemp == INVALID) \                RETURN_RESP(AP_RESPCODE_LOGERR) \            else \                RETURN_RESP(AP_RESPCODE_SYSERR) \        } \    }void main(){    ISO8583STRU iso8583stru;    PXMLSTRU pxmlstruReq;    PXMLSTRU pxmlstruResp;       RESULT rTemp;        char szMsgType[AP_LEN_MSGTYPE + 1];    char szSeqNo[AP_LEN_SEQNO + 1];    char szRespSeqNo[AP_LEN_SEQNO + 1];        UCHAR cPinKey[SIZE_KEY];    UCHAR cMacKey[SIZE_KEY];           memset(&iso8583stru, 0, sizeof(iso8583stru));    if (!VERIFY_NULL(pxmlstruReq = ApScGetReqXml()) ||        !VERIFY_NULL(pxmlstruResp = ApScGetRespXml()))        EXEC CICS RETURN;    if (!IsReady())        RETURN_RESP(AP_RESPCODE_SYS_INTERMIT)    ASSURE_NORMAL(SetSmId())    ASSURE_NORMAL(GetKey(cPinKey, cMacKey))        ASSURE_NORMAL(CreateIso8583(&iso8583stru, ifistruDsi))    AP_DEMAND(AP_PATH_MSGTYPE, szMsgType);    AP_DEMAND_EXT(AP_PATH_RESPSEQNO, szRespSeqNo);    if (strcmp(szMsgType, AP_MSGTYPE_SUBMITREQ) == 0)    {        ASSURE_NORMAL(AP_DEMAND(AP_PATH_ORGSEQNO, szSeqNo))        ASSURE_NORMAL(GetOrgInfo(szSeqNo, &iso8583stru))        ASSURE_NORMAL(SetBitInIso8583(&iso8583stru, BIT_PROCESSCODE, "200000",                                      SIZE_PROCESSCODE))            ASSURE_NORMAL(GetTransmissDateTime(&iso8583stru))        ASSURE_NORMAL(GetTraceNo(pxmlstruReq, &iso8583stru))        ASSURE_NORMAL(GetLocalTransDate(pxmlstruReq, &iso8583stru))        ASSURE_NORMAL(GetLocalTransTime(pxmlstruReq, &iso8583stru))        ASSURE_NORMAL(GetEntryMode(pxmlstruReq, &iso8583stru))        ASSURE_NORMAL(GetPinCaptureCode(pxmlstruReq, &iso8583stru))        ASSURE_NORMAL(GetAcqId(pxmlstruReq, &iso8583stru))        ASSURE_NORMAL(GetForwardId(&iso8583stru))        ASSURE_NORMAL(GetTrack2(pxmlstruReq, &iso8583stru))        ASSURE_NORMAL(GetTrack3(pxmlstruReq, &iso8583stru))        VERIFY_NORMAL(GetPin(pxmlstruReq, &iso8583stru, cPinKey));        ASSURE_NORMAL(GetSecurityCtrlInfo(pxmlstruReq, &iso8583stru))        ASSURE_NORMAL(GetAcqReserve(pxmlstruReq, &iso8583stru))        ASSURE_NORMAL(SetMac(&iso8583stru, cTransMac, cMacKey))        rTemp = LinkDsi(&iso8583stru, szRespSeqNo);            if (!VERIFY(rTemp != EXCEPTION))            RETURN_RESP(AP_RESPCODE_SYSERR)            if (!VERIFY(rTemp != UNKNOWN) ||            !VERIFY_NORMAL(SetRespCode(pxmlstruResp, &iso8583stru)))            RETURN_RESP(AP_RESPCODE_EXCEPTION)            if (ApIsRespCode(pxmlstruResp, AP_RESPCODE_ACCEPT))        {                if (!VERIFY_NORMAL(VerifyMac(&iso8583stru, cTransMac, cMacKey)) ||                !VERIFY_NORMAL(SetSettleDate(pxmlstruResp, &iso8583stru)))                RETURN_RESP(AP_RESPCODE_EXCEPTION)        }    }    else if (strcmp(szMsgType, AP_MSGTYPE_CANCELREQ) == 0)    {        ASSURE_NORMAL(AP_DEMAND(AP_PATH_SEQNO, szSeqNo))        ASSURE_NORMAL(GetOrgInfo(szSeqNo, &iso8583stru))        ASSURE_NORMAL(SetBitInIso8583(&iso8583stru, BIT_MSGID, "0420",                                      SIZE_MSGID))        ASSURE_NORMAL(GetTransmissDateTime(&iso8583stru))        ASSURE_NORMAL(GetTraceNo(pxmlstruReq, &iso8583stru))        ASSURE_NORMAL(SetBitInIso8583(&iso8583stru, BIT_RESERVEPRIV, "4021",                                      SIZE_REASONCODE))        ASSURE_NORMAL(SetMac(&iso8583stru, cTransMac, cMacKey))        rTemp = LinkDsi(&iso8583stru, szRespSeqNo);            if (!VERIFY(rTemp != EXCEPTION))            RETURN_RESP(AP_RESPCODE_SYSERR)            if (!VERIFY(rTemp != UNKNOWN) ||            !VERIFY_NORMAL(SetRespCode(pxmlstruResp, &iso8583stru)))            RETURN_RESP(AP_RESPCODE_EXCEPTION)        if (ApIsRespCode(pxmlstruResp, AP_RESPCODE_ACCEPT))        {                if (!VERIFY_NORMAL(VerifyMac(&iso8583stru, cTransMac, cMacKey)) ||                !VERIFY_NORMAL(SetSettleDate(pxmlstruResp, &iso8583stru)))                RETURN_RESP(AP_RESPCODE_EXCEPTION)        }    }    else        ASSURE_NORMAL(INVALID)    DeleteIso8583(&iso8583stru);     EXEC CICS RETURN;}/* End of this file */    

⌨️ 快捷键说明

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