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

📄 capos.cpre

📁 商业银行前置系统
💻 CPRE
字号:
/* * This is a part of the Application Preconsole * - Channel Access - POS. * 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-09-18 HuangRunLang  - create implemention file for *                            transaction entrance */ #include <sybtesql.h>#include "ap.h"#include "apca.h"EXEC SQL INCLUDE sqlca;EXEC SQL INCLUDE "pos.h";EXEC SQL INCLUDE "posext.h";/* * ASSURE宏用以处理程序中发生的异常。为适用于各个阶段的异常处理,该 * 宏对整个处理过程中可能分配的资源都进行清理。 */#define ASSURE(b) \    { \        if (!VERIFY(b)) \        { \            DeleteIso8583(&iso8583stru); \            EXEC CICS RETURN; \        } \    }    #define ASSURE_NORMAL(r) ASSURE((r) == NORMAL)char szConvKeyTime[LEN_CONVKEYTIME + 1];RESULT main(UINT nArgCnt, PSTR pszArgVal[]){    ISO8583STRU iso8583stru;    PISO8583STRU piso8583stru;    PCOMMAREASTRU pcommareastru;    char szTransCode[AP_LEN_TRANSCODE + 1];    char szMsgId[SIZE_MSGID + 1];    char cMsg[SIZE_MSG_ISO8583 + 2 + SIZE_TPDU];    char cTpdu[SIZE_TPDU];    UINT nMsgSize, nSize;    piso8583stru = &iso8583stru;    memset(&iso8583stru, 0, sizeof(ISO8583STRU));    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, atol(pcommareastru->szMsgLen));    nSize = atol(pcommareastru->szMsgLen);    strcpy(szConvKeyTime, pcommareastru->szConvKeyTime);    memcpy(cTpdu, cMsg, SIZE_TPDU);    VERIFY_NORMAL(ApCaRecord(cMsg, nSize, "pos", TRUE));        ASSURE_NORMAL(CreateIso8583(piso8583stru, ifistruPos))    ASSURE_NORMAL(ImportIso8583(piso8583stru, cMsg + SIZE_TPDU,                                nSize - SIZE_TPDU))    bufclr(szTransCode);    bufclr(szMsgId);    nSize = SIZE_MSGID;    ASSURE_NORMAL(GetBitInIso8583(piso8583stru, BIT_MSGID, szMsgId, &nSize))    if (strcmp(szMsgId, "0400") == 0)        ASSURE_NORMAL(HandleReverse(piso8583stru))    else    {        ASSURE_NORMAL(GetTransCode(piso8583stru, szTransCode))        if (strcmp(szTransCode, AP_TRANSCODE_CS_QUERYBAL) == 0)            ASSURE_NORMAL(HandleQueryBal(piso8583stru))            else if (strcmp(szTransCode, AP_TRANSCODE_CS_QUERYSTATUS) == 0)            ASSURE_NORMAL(HandleQueryStatus(piso8583stru))            else if (strcmp(szTransCode, AP_TRANSCODE_CS_CONSUME) == 0)            ASSURE_NORMAL(HandleConsume(piso8583stru))            else if (strcmp(szTransCode, AP_TRANSCODE_CS_REFUND) == 0)            ASSURE_NORMAL(HandleRefund(piso8583stru))            else if (strcmp(szTransCode, AP_TRANSCODE_CS_AUTH) == 0)            ASSURE_NORMAL(HandleAuth(piso8583stru))            else if (strcmp(szTransCode, AP_TRANSCODE_CS_AUTHSETTLE) == 0)            ASSURE_NORMAL(HandleAuthSettle(piso8583stru))            else if (strcmp(szTransCode, TRANSCODE_ADJUST) == 0)            ASSURE_NORMAL(HandleAdjust(piso8583stru))            else if (strcmp(szTransCode, TRANSCODE_INIT) == 0)            ASSURE_NORMAL(HandleInit(piso8583stru))            else if (strcmp(szTransCode, TRANSCODE_SETTLE) == 0)            ASSURE_NORMAL(HandleSettle(piso8583stru))            else if (strcmp(szTransCode, TRANSCODE_SETTLE2) == 0)            ASSURE_NORMAL(HandleSettle2(piso8583stru))            else if (strcmp(szTransCode, AP_TRANSCODE_CS_CANCEL) == 0)            ASSURE_NORMAL(HandleCancel(piso8583stru))            else if (strcmp(szTransCode, TRANSCODE_UPLOAD) == 0)            ASSURE_NORMAL(HandleUpload(piso8583stru))            else            ASSURE_NORMAL(INVALID)    }        /*     * change NAC TPDU     */    bufclr(cMsg);    memcpy(cMsg + 2, cTpdu, 1);    memcpy(cMsg + 2 + 1, cTpdu + 3, 2);    memcpy(cMsg + 2 + 3, cTpdu + 1, 2);        nSize = SIZE_MSG_ISO8583;    ASSURE_NORMAL(ExportIso8583(piso8583stru, cMsg + 2 + SIZE_TPDU, &nSize))    DeleteIso8583(piso8583stru);    cMsg[0] = (nSize + SIZE_TPDU) / 256;    cMsg[1] = (nSize + SIZE_TPDU) % 256;    VERIFY_NORMAL(ApCaRecord(cMsg, nSize + 2 + SIZE_TPDU, "pos", TRUE));        memcpy(pcommareastru->cMsg, cMsg, nSize + 2 + SIZE_TPDU);    sprintf(pcommareastru->szMsgLen, "%06d", nSize + 2 + SIZE_TPDU);        EXEC CICS RETURN;}/* End of this file */

⌨️ 快捷键说明

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