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

📄 sp030104.cpre

📁 商业银行前置系统
💻 CPRE
字号:
/* * This is a part of the Application Preconsole * - Service Provide - Internal Switch Interface. * Copyright (C) 2001-2001 ChenYu ABC.SDC. * All rights reserved. * * This source code is only intended as a supplement to the * Common Preconsole Reference and related electronic documentation * provided with the library. * See these sources for detailed information regarding the * Common Preconsole product. * * Update record: * 2001-08-11 ChenYu    - create implementation file for entrance *                        cics program for refund */#include <sybtesql.h> #include "ap.h"#include "apsc.h"#include "apsp.h"EXEC SQL INCLUDE sqlca;EXEC SQL INCLUDE "isi.h"; #define RETURN_RESP(pszRespCode) \    { \        ApUpdateRespCode(pxmlstruResp, pszRespCode); \        DeleteIso8583(&iso8583stru); \        EXEC CICS RETURN; \    }#define ASSURE_NORMAL(r) \    { \        RESULT rTemp; \        rTemp = (r); \        if (rTemp == INVALID) \            AP_UPDATE(AP_PATH_RESPCODE, AP_RESPCODE_LOGERR); \        if (rTemp == EXCEPTION) \            AP_UPDATE(AP_PATH_RESPCODE, AP_RESPCODE_SYSERR); \        if (!VERIFY_NORMAL(rTemp)) \        { \            DeleteIso8583(&iso8583stru); \            EXEC CICS RETURN; \        } \    }void main(){    RESULT rLink;    char szRespSeqNo[AP_LEN_SEQNO + 1], szSeqNo[AP_LEN_SEQNO + 1];    char szAccType[AP_LEN_ACCTYPE + 1];    ISO8583STRU iso8583stru;     PXMLSTRU pxmlstruReq;    PXMLSTRU pxmlstruResp;    bufclr(szRespSeqNo);    bufclr(szSeqNo);    bufclr(szAccType);        if (!VERIFY_NULL(pxmlstruReq = ApScGetReqXml()) ||         !VERIFY_NULL(pxmlstruResp = ApScGetRespXml()))         EXEC CICS RETURN;    ASSURE_NORMAL(AP_DEMAND(AP_PATH_ACCTYPE, szAccType))        if (strcmp(szAccType, AP_ACCTYPE_CREDITCARD) == 0)    {        if (IsAgentAuth(pxmlstruReq))        {            ApUpdateRespCode(pxmlstruResp, AP_RESPCODE_SERVICE_NOTSUPPORT);            EXEC CICS RETURN;        }    }    memset(&iso8583stru, 0, sizeof(ISO8583STRU));    ASSURE_NORMAL(CreateIso8583(&iso8583stru, ifistruIsi))    /*     * 格式转换(XML->ISO8583)。     */    ASSURE_NORMAL(SetBitInIso8583(&iso8583stru, BIT_MSGID, "0220", SIZE_MSGID))    ASSURE_NORMAL(SetBitInIso8583(&iso8583stru, BIT_PROCESSCODE, "200000",                                  SIZE_PROCESSCODE))                                      ASSURE_NORMAL(GetPubInfo(&iso8583stru, pxmlstruReq))    ASSURE_NORMAL(GetRetrievalRefNo(pxmlstruReq, &iso8583stru))    ASSURE_NORMAL(GetTransAmt(pxmlstruReq, &iso8583stru))    ASSURE_NORMAL(GetPinCaptureCode(pxmlstruReq, &iso8583stru))    ASSURE_NORMAL(GetTransFee(pxmlstruReq, &iso8583stru))    ASSURE_NORMAL(GetTrack2(pxmlstruReq, &iso8583stru))    ASSURE_NORMAL(GetTrack3(pxmlstruReq, &iso8583stru))    ASSURE_NORMAL(GetAuthResp(pxmlstruReq, &iso8583stru))    ASSURE_NORMAL(SetMac(&iso8583stru, cTransMac, BIT_MAC128))    /*     * 登记ISID表。     */    ASSURE_NORMAL(AP_DEMAND_EXT(AP_PATH_RESPSEQNO, szRespSeqNo))    ASSURE_NORMAL(AP_DEMAND(AP_PATH_SEQNO, szSeqNo))    ASSURE_NORMAL(RecordDetail(&iso8583stru, szRespSeqNo, szSeqNo))    /*     * 交易提交。     */         if (!VERIFY((rLink = LinkIsi(&iso8583stru)) != UNKNOWN))        RETURN_RESP(AP_RESPCODE_EXCEPTION)    ASSURE_NORMAL(rLink)    if (!VERIFY_NORMAL(VerifyMac(&iso8583stru, cTransMac, BIT_MAC128)) ||        !VERIFY_NORMAL(SetRespCode(&iso8583stru, pxmlstruResp)))        RETURN_RESP(AP_RESPCODE_EXCEPTION)    if (ApIsRespCode(pxmlstruResp, AP_RESPCODE_ACCEPT))    {        /*         * 根据应答报文修改ISID表。         */            VERIFY_NORMAL(UpdateDetail(&iso8583stru, szSeqNo));        VERIFY_NORMAL(SetFee(&iso8583stru, pxmlstruResp));        VERIFY_NORMAL(SetSettleDate(&iso8583stru, pxmlstruResp));    }     DeleteIso8583(&iso8583stru);     EXEC CICS RETURN;}/* End of this file */

⌨️ 快捷键说明

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