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

📄 caisi.cpre

📁 商业银行前置系统
💻 CPRE
字号:
/* * This is a part of the Application Preconsole * - Channel Access - ISI. * 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-08 ChenYu        - ISI CA Entrance.  */#include <sybtesql.h>#include "ap.h"EXEC SQL INCLUDE sqlca;EXEC SQL INCLUDE "isi.h";#define RETURN_DELETE_MEMOREG \    { \        VERIFY_NORMAL(DeleteMemoReg()); \        EXEC CICS RETURN; \    }#define ASSURE_NORMAL(r) \    { \        if (!VERIFY_NORMAL(r)) \        { \            DeleteIso8583(&iso8583stru); \            RETURN_DELETE_MEMOREG; \        } \    }void main(){    char *pcCommArea, cMsg[2 + SIZE_MSG_ISO8583];    char szCommArea[1024 + 1];    short sSize;    ISO8583STRU iso8583stru;    UINT nSize;    char szHandle[SIZE_MSGID + SIZE_PROCESSCODE + 1];    char szRespCode[SIZE_RESPCODE + 1];    char szAddResp[SIZE_ADDRESP_MAX + 1];        long lRespCode;    if (!VERIFY_NORMAL(CreateMemoReg()))        EXEC CICS RETURN;    EXEC SQL SET CHAINED OFF;    bufclr(szHandle);    memset(&iso8583stru, 0, sizeof(ISO8583STRU));    EXEC CICS ADDRESS COMMAREA(pcCommArea);    EXEC CICS ADDRESS EIB(dfheiptr);    sSize = dfheiptr->eibcalen;    if (!VERIFY_NULL(pcCommArea))        RETURN_DELETE_MEMOREG    ASSURE_NORMAL(CreateIso8583(&iso8583stru, ifistruIsi))    ASSURE_NORMAL(ImportIso8583(&iso8583stru, pcCommArea + 2, sSize - 2))    #ifdef DEBUGIsiPrintIso8583(&iso8583stru, "CAISI REQUEST ISO8583");#endif        nSize = SIZE_MSGID;    ASSURE_NORMAL(GetBitInIso8583(&iso8583stru, BIT_MSGID, szHandle, &nSize))    nSize = SIZE_PROCESSCODE;    GetBitInIso8583(&iso8583stru, BIT_PROCESSCODE, &szHandle[4], &nSize);    if (strcmp(szHandle, "0200300000") == 0)        ASSURE_NORMAL(HandleQueryBal(&iso8583stru))            else if (strcmp(szHandle, "0200310000") == 0)        ASSURE_NORMAL(HandleQueryStatus(&iso8583stru))            else if (strcmp(szHandle, "0200090000") == 0 ||              strcmp(szHandle, "0420090000") == 0)        ASSURE_NORMAL(HandleConsume(&iso8583stru))            else if (strcmp(szHandle, "0220200000") == 0)        ASSURE_NORMAL(HandleRefund(&iso8583stru))            else if (strcmp(szHandle, "0100000000") == 0 ||              strcmp(szHandle, "0420000000") == 0)        ASSURE_NORMAL(HandleAuth(&iso8583stru))            else if (strcmp(szHandle, "0100003000") == 0 ||              strcmp(szHandle, "0420003000") == 0)        ASSURE_NORMAL(HandleManualAuth(&iso8583stru))            else if (strcmp(szHandle, "0200030000") == 0 ||              strcmp(szHandle, "0420030000") == 0)        ASSURE_NORMAL(HandleAuthSettle(&iso8583stru))            else if (strcmp(szHandle, "0200210000") == 0 ||              strcmp(szHandle, "0420210000") == 0)        ASSURE_NORMAL(HandleDeposit(&iso8583stru))            else if (strcmp(szHandle, "0200010000") == 0 ||              strcmp(szHandle, "0420010000") == 0)        ASSURE_NORMAL(HandleWithdraw(&iso8583stru))            else if (strcmp(szHandle, "0200400010") == 0 ||              strcmp(szHandle, "0420400010") == 0)        ASSURE_NORMAL(HandleTransferIn(&iso8583stru))            else if (strcmp(szHandle, "0200401000") == 0 ||              strcmp(szHandle, "0420401000") == 0)        ASSURE_NORMAL(HandleTransferOut(&iso8583stru))            else if (strcmp(szHandle, "0200500000") == 0)        ASSURE_NORMAL(HandleChangePin(&iso8583stru))            else if (strcmp(szHandle, "0200600000") == 0 ||              strcmp(szHandle, "0420600000") == 0)        ASSURE_NORMAL(HandleLost(&iso8583stru))            else if (strcmp(szHandle, "0200230000") == 0 ||              strcmp(szHandle, "0420230000") == 0 ||             strcmp(szHandle, "0200020000") == 0 ||              strcmp(szHandle, "0420020000") == 0 ||             strcmp(szHandle, "0200220000") == 0 ||              strcmp(szHandle, "0420220000") == 0 ||             strcmp(szHandle, "0200200000") == 0 ||              strcmp(szHandle, "0420200000") == 0 ||             strcmp(szHandle, "0100200000") == 0 ||              strcmp(szHandle, "0200481000") == 0 ||              strcmp(szHandle, "0420481000") == 0 ||             strcmp(szHandle, "0200480010") == 0 ||              strcmp(szHandle, "0420480010") == 0 ||             strcmp(szHandle, "0200601000") == 0 ||              strcmp(szHandle, "0420601000") == 0 ||             strcmp(szHandle, "0100203000") == 0 ||              strcmp(szHandle, "0420203000") == 0)        ASSURE_NORMAL(HandleCancel(&iso8583stru))            else if (strcmp(szHandle, "0500") == 0)        ASSURE_NORMAL(HandleSettle(&iso8583stru))            else if (strcmp(szHandle, "0820") == 0)        ASSURE_NORMAL(HandleAdvice(&iso8583stru))    else if (strcmp(szHandle, "0800") == 0)        ASSURE_NORMAL(HandleKeyExchange(&iso8583stru))            else        ASSURE_NORMAL(INVALID)    bufclr(cMsg);        cMsg[0] = 0xF9;    cMsg[1] = 0xF7;        nSize = SIZE_MSG_ISO8583;    if (!VERIFY_NORMAL(ExportIso8583(&iso8583stru, &cMsg[2], &nSize)) ||        !VERIFY_NORMAL(SendAppc("CD01", "MODELU62", "RECV", cMsg, nSize + 2)))    {        bufclr(szRespCode);        bufclr(szAddResp);                nSize = SIZE_RESPCODE;        GetBitInIso8583(&iso8583stru, BIT_RESPCODE, szRespCode, &nSize);        nSize = SIZE_ADDRESP_MAX;        GetBitInIso8583(&iso8583stru, BIT_ADDRESP, szAddResp, &nSize);        if (strcmp(szRespCode, "00") == 0 &&            (strcmp(szHandle, "0200090000") == 0 || /* 消费 */             strcmp(szHandle, "0100000000") == 0 || /* 预授权 */             strcmp(szHandle, "0100003000") == 0 || /* 授权 */             strcmp(szHandle, "0200003000") == 0 || /* 预授权完成 */             strcmp(szHandle, "0200010000") == 0 || /* 取现 */             strcmp(szHandle, "0200401000") == 0 || /* 转出 */             strcmp(szHandle, "0200230000") == 0 || /* 预授权完成撤消 */             strcmp(szHandle, "0200200000") == 0))  /* 消费撤消 */        {            nSize = sizeof(szCommArea);            sprintf(szCommArea, "submitadvice RESPSEQNO %12s 1", szAddResp);                    EXEC CICS LINK PROGRAM("SC04") COMMAREA(szCommArea)                      LENGTH(nSize) RESP(lRespCode);                if (!VERIFY(lRespCode == DFHRESP(NORMAL)) ||                !VERIFY(strcmp(szCommArea, "submit advice successfully.") == 0))                PrintLog(stderr, "CAUTION-ET16: RESPSEQNO[%12s]", szAddResp);        }    }    #ifdef DEBUGIsiPrintIso8583(&iso8583stru, "CAISI RESPONSE ISO8583");#endif    DeleteIso8583(&iso8583stru);    RETURN_DELETE_MEMOREG}/* End of this file */

⌨️ 快捷键说明

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