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

📄 cadsi.cpre

📁 商业银行前置系统
💻 CPRE
字号:
/* * This is a part of the Application Preconsole * Channel Access - 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-12 Cheng WeiHong    - create implementation file for  *                               transaction entrance * 2001-09-25 R.Cao            - simplify logic */ #include <sybtesql.h>#include "ap.h"#include "apca.h"EXEC SQL INCLUDE sqlca;EXEC SQL INCLUDE "dsi.h";EXEC SQL INCLUDE "dsiext.h";/* * ASSURE宏用以处理程序中发生的异常。为适用于各个阶段的异常处理,该 * 宏对整个处理过程中可能分配的资源都进行清理。 */#define ASSURE(b) \    { \        if (!VERIFY(b)) \        { \            DeleteIso8583(&iso8583stru); \            EXEC CICS RETURN; \        } \    }    #define ASSURE_NORMAL(r) ASSURE((r) == NORMAL)UINT nReqSeqNo;void main(){    ISO8583STRU iso8583stru;    PCOMMAREASTRU pcommareastru;    char cMsg[SIZE_MSG_ISO8583];    UINT nSize;        char szTransCode[AP_LEN_TRANSCODE + 1];    memset(&iso8583stru, 0, sizeof(ISO8583STRU));    EXEC SQL SET CHAINED OFF;    EXEC CICS ADDRESS EIB(dfheiptr);    EXEC CICS ADDRESS COMMAREA(pcommareastru);        if (!VERIFY_NULL(pcommareastru) ||        !VERIFY(dfheiptr->eibcalen == sizeof(COMMAREASTRU)))         ASSURE_NORMAL(EXCEPTION)        memcpy(cMsg, pcommareastru->cMsg, pcommareastru->nSize);    nSize = pcommareastru->nSize;    nReqSeqNo = atoi(pcommareastru->szReqSeqNo + 6);        /*     * 建立ISO8583 结构并获得交易码。     */        VERIFY_NORMAL(ApCaRecord(cMsg, nSize, "dsi", TRUE));    ASSURE_NORMAL(SetSmId())        ASSURE_NORMAL(CreateIso8583(&iso8583stru, ifistruDsi))    ASSURE_NORMAL(ImportIso8583(&iso8583stru, cMsg, nSize))    ASSURE_NORMAL(GetTransCode(&iso8583stru, szTransCode))    if (strcmp(szTransCode, AP_TRANSCODE_CS_AUTH) == 0)        ASSURE_NORMAL(HandleAuth(&iso8583stru))    else if (strcmp(szTransCode, AP_TRANSCODE_CS_CANCEL) == 0)        ASSURE_NORMAL(HandleCancel(&iso8583stru))    else if (strcmp(szTransCode, AP_TRANSCODE_CS_QUERYBAL) == 0)        ASSURE_NORMAL(HandleQueryBal(&iso8583stru))    else if (strcmp(szTransCode, AP_TRANSCODE_CS_WITHDRAW) == 0)        ASSURE_NORMAL(HandleWithdraw(&iso8583stru))    else if (strcmp(szTransCode, AP_TRANSCODE_CS_AUTHSETTLE) == 0)        ASSURE_NORMAL(HandleAuthSettle(&iso8583stru))    else if (strcmp(szTransCode, AP_TRANSCODE_CS_CONSUME) == 0)        ASSURE_NORMAL(HandleConsume(&iso8583stru))    else if (strcmp(szTransCode, AP_TRANSCODE_CS_REFUND) == 0)        ASSURE_NORMAL(HandleRefund(&iso8583stru))    else if (strcmp(szTransCode, AP_TRANSCODE_CS_SETTLE) == 0)        ASSURE_NORMAL(HandleSettle(&iso8583stru))    else if (strcmp(szTransCode, TRANSCODE_REVERSE) == 0)        ASSURE_NORMAL(HandleReverse(&iso8583stru))    else if (strcmp(szTransCode, TRANSCODE_RESETKEY) == 0)        ASSURE_NORMAL(HandleResetKey(&iso8583stru))    else if (strcmp(szTransCode, TRANSCODE_AUTHSETTLE) == 0)        ASSURE_NORMAL(HandleAuthSettle2(&iso8583stru))    else if (strcmp(szTransCode, TRANSCODE_FEE) == 0)        ASSURE_NORMAL(HandleFee(&iso8583stru))    else if (strcmp(szTransCode, TRANSCODE_ADMIN) == 0)        ASSURE_NORMAL(HandleAdmin(&iso8583stru))    else if (strcmp(szTransCode, TRANSCODE_NETMAN) == 0)        ASSURE_NORMAL(HandleNetMan(&iso8583stru))    else         ASSURE_NORMAL(INVALID)    nSize = sizeof(cMsg);    ASSURE_NORMAL(ExportIso8583(&iso8583stru, cMsg, &nSize))    DeleteIso8583(&iso8583stru);    VERIFY_NORMAL(ApCaRecord(cMsg, nSize, "dsi", TRUE));        memcpy(pcommareastru->cMsg, cMsg, nSize);    pcommareastru->nSize = nSize;        EXEC CICS RETURN;}/* End of this file */

⌨️ 快捷键说明

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