📄 cs.cpre
字号:
/* * This is a part of the Application Preconsole * - Channel Access - TERM. * Copyright (C) 2001-2001 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-17 Chang Yong - create implementation file * for card service */#include "ap.h"#include "apca.h"EXEC SQL INCLUDE sqlca;EXEC SQL INCLUDE "abis.h";#include "term.h"#include "cs.h"/* * Function macros defined in this file */#define RETURN_DELETE \ { \ DeleteXml(pxmlstruReq); \ DeleteXml(pxmlstruResp); \ return NORMAL; \ }#define ASSURE_NORMAL(r) \ { \ RESULT rTemp; \ if (!VERIFY_NORMAL(rTemp = (r))) \ { \ strcpy(ptoastru->szData, "1002"); \ RETURN_DELETE \ } \ }RESULT HandleCsTransferIn(PCTIASTRU ptiastru, PTOASTRU ptoastru){ char szData[AP_LEN_AMT + 1]; char szAuthCode[AP_LEN_AUTHCODE + 1]; char szVchArea[AP_LEN_VCHAREA + 1]; char szVchNum[AP_LEN_VCHNUM + 1]; char szRespCode[AP_LEN_RESPCODE + 1]; CSI10STRU csi10stru; CSO10STRU cso10stru; PCSI10STRU pcsi10stru; PCSO10STRU pcso10stru; XMLSTRU xmlstruReq; XMLSTRU xmlstruResp; PXMLSTRU pxmlstruReq, pxmlstruResp; pxmlstruReq = &xmlstruReq; pxmlstruResp = &xmlstruResp; memset(&xmlstruReq, 0, sizeof(xmlstruReq)); memset(&xmlstruResp, 0, sizeof(xmlstruResp)); memset(&csi10stru, 0, sizeof(csi10stru)); memset(&cso10stru, 0, sizeof(cso10stru)); pcsi10stru = &csi10stru; pcso10stru = &cso10stru; /* * 创建XML请求报文结构 */ ASSURE_NORMAL(CreateXml(pxmlstruReq, FALSE, AP_PATH_ROOT, NULL)) /* * 根据TIA填写请求XML的公共域 */ ASSURE_NORMAL(FillReqXmlWithTia(ptiastru, pxmlstruReq)) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_TRANSFERIN)) tscanf(ptiastru->szDataA, FMT_CSI10_A, VAR_CSI10_A); ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_ACCNO, pcsi10stru->szAccNo)) sprintf(szData, "%19.2lf", pcsi10stru->dAmt); ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_AMT, szData)) sprintf(szData, "%19.2lf", pcsi10stru->dFee); ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_FEE, szData)) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "N")) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_EXPDATE, pcsi10stru->szExpDate)) /* * 提交交易 */ ASSURE_NORMAL(ApCaSubmit(pxmlstruReq, pxmlstruResp)) /* * 根据应答XML填写TOA必填项 */ AP_DEMAND_EXT(AP_PATH_RESPCODE, szRespCode); if (strcmp(szRespCode, AP_RESPCODE_ACCEPT) == 0 || strcmp(szRespCode, AP_RESPCODE_INCONSISTENT) == 0) { if (!VERIFY_NORMAL(FillToaWithRespXml(ptoastru, pxmlstruResp)) || !VERIFY_NORMAL(SetVchInfo(pxmlstruResp, ptoastru, szVchNum, szVchArea))) RETURN_DELETE AP_DEMAND_EXT(AP_PATH_ACCNAME, pcso10stru->szAccName); AP_DEMAND_EXT(AP_PATH_BAL, szData); pcso10stru->dBal = atof(szData); AP_DEMAND_EXT(AP_PATH_AVAILBAL, szData); pcso10stru->dAvailBal = atof(szData); AP_DEMAND_EXT(AP_PATH_FEE, szData); pcso10stru->dFee = atof(szData); AP_DEMAND_EXT(AP_PATH_AREA, pcso10stru->szCityCode); AP_DEMAND_EXT(AP_PATH_AUTHCODE, pcso10stru->szAuthCode); AP_DEMAND_EXT(AP_PATH_RESPSEQNO, pcso10stru->szRespSeqNo); tprintf(ptoastru->szData, FMT_CSO10, VAR_CSO10); ptoastru->nLen = strlen(ptoastru->szData); } else if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_EXCEPTION)) RETURN_DELETE else VERIFY_NORMAL(FillToaWithRespXml(ptoastru, pxmlstruResp)); RETURN_DELETE}RESULT HandleCsTransferOut(PCTIASTRU ptiastru, PTOASTRU ptoastru){ char szData[AP_LEN_AMT + 1]; char szVchArea[AP_LEN_VCHAREA + 1]; char szVchNum[AP_LEN_VCHNUM + 1]; char szRespCode[AP_LEN_RESPCODE + 1]; CSI11STRU csi11stru; CSO11STRU cso11stru; PCSI11STRU pcsi11stru; PCSO11STRU pcso11stru; XMLSTRU xmlstruReq; XMLSTRU xmlstruResp; PXMLSTRU pxmlstruReq, pxmlstruResp; pxmlstruReq = &xmlstruReq; pxmlstruResp = &xmlstruResp; memset(&xmlstruReq, 0, sizeof(xmlstruReq)); memset(&xmlstruResp, 0, sizeof(xmlstruResp)); memset(&csi11stru, 0, sizeof(csi11stru)); memset(&cso11stru, 0, sizeof(cso11stru)); pcsi11stru = &csi11stru; pcso11stru = &cso11stru; /* * 创建XML请求报文结构 */ ASSURE_NORMAL(CreateXml(pxmlstruReq, FALSE, AP_PATH_ROOT, NULL)) /* * 根据TIA填写请求XML的公共域 */ ASSURE_NORMAL(FillReqXmlWithTia(ptiastru, pxmlstruReq)) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_TRANSFEROUT)) tscanf(ptiastru->szDataA, FMT_CSI11_A, VAR_CSI11_A); ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_ACCNO, pcsi11stru->szAccNo)) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_ACCPWD, pcsi11stru->szAccPwd)) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_EXPDATE, pcsi11stru->szExpDate)) if (strcmp(pcsi11stru->szTrack2, "") != 0) { ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "Y")) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACK2, pcsi11stru->szTrack2)) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACK3, pcsi11stru->szTrack3)) } else ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "N")) sprintf(szData, "%19.2lf", pcsi11stru->dAmt); ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_AMT, szData)) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_ADDACCTYPE, pcsi11stru->szAddAccType)) /* * 提交交易 */ ASSURE_NORMAL(ApCaSubmit(pxmlstruReq, pxmlstruResp)) /* * 根据应答XML填写TOA必填项 */ AP_DEMAND_EXT(AP_PATH_RESPCODE, szRespCode); if (strcmp(szRespCode, AP_RESPCODE_ACCEPT) == 0 || strcmp(szRespCode, AP_RESPCODE_INCONSISTENT) == 0) { if (!VERIFY_NORMAL(FillToaWithRespXml(ptoastru, pxmlstruResp)) || !VERIFY_NORMAL(SetVchInfo(pxmlstruResp, ptoastru, szVchNum, szVchArea))) RETURN_DELETE AP_DEMAND_EXT(AP_PATH_ACCNAME, pcso11stru->szAccName); AP_DEMAND_EXT(AP_PATH_BAL, szData); pcso11stru->dBal = atof(szData); AP_DEMAND_EXT(AP_PATH_AVAILBAL, szData); pcso11stru->dAvailBal = atof(szData); AP_DEMAND_EXT(AP_PATH_FEE, szData); pcso11stru->dFee = atof(szData); AP_DEMAND_EXT(AP_PATH_AREA, pcso11stru->szCityCode); AP_DEMAND_EXT(AP_PATH_AUTHCODE, pcso11stru->szAuthCode); AP_DEMAND_EXT(AP_PATH_RESPSEQNO, pcso11stru->szRespSeqNo); tprintf(ptoastru->szData, FMT_CSO11, VAR_CSO11); ptoastru->nLen = strlen(ptoastru->szData); } else if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_EXCEPTION)) RETURN_DELETE else VERIFY_NORMAL(FillToaWithRespXml(ptoastru, pxmlstruResp)); RETURN_DELETE}RESULT HandleCsDeposit(PCTIASTRU ptiastru, PTOASTRU ptoastru){ char szData[AP_LEN_AMT + 1]; char szAuthCode[AP_LEN_AUTHCODE + 1]; char szVchArea[AP_LEN_VCHAREA + 1]; char szVchNum[AP_LEN_VCHNUM + 1]; char szRespCode[AP_LEN_RESPCODE + 1]; CSI12STRU csi12stru; CSO12STRU cso12stru; PCSI12STRU pcsi12stru; PCSO12STRU pcso12stru; XMLSTRU xmlstruReq; XMLSTRU xmlstruResp; PXMLSTRU pxmlstruReq, pxmlstruResp; pxmlstruReq = &xmlstruReq; pxmlstruResp = &xmlstruResp; memset(&xmlstruReq, 0, sizeof(xmlstruReq)); memset(&xmlstruResp, 0, sizeof(xmlstruResp)); memset(&csi12stru, 0, sizeof(csi12stru)); memset(&cso12stru, 0, sizeof(cso12stru)); pcsi12stru = &csi12stru; pcso12stru = &cso12stru; /* * 创建XML请求报文结构 */ ASSURE_NORMAL(CreateXml(pxmlstruReq, FALSE, AP_PATH_ROOT, NULL)) /* * 根据TIA填写请求XML的公共域 */ ASSURE_NORMAL(FillReqXmlWithTia(ptiastru, pxmlstruReq)) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_DEPOSIT)) tscanf(ptiastru->szDataA, FMT_CSI12_A, VAR_CSI12_A); ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_ACCNO, pcsi12stru->szAccNo)) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_EXPDATE, pcsi12stru->szExpDate)) sprintf(szData, "%19.2lf", pcsi12stru->dAmt); ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_AMT, szData)) sprintf(szData, "%19.2lf", pcsi12stru->dFee); ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_FEE, szData)) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "N")) /* * 提交交易 */ ASSURE_NORMAL(ApCaSubmit(pxmlstruReq, pxmlstruResp)) /* * 根据应答XML填写TOA必填项 */ AP_DEMAND_EXT(AP_PATH_RESPCODE, szRespCode); if (strcmp(szRespCode, AP_RESPCODE_ACCEPT) == 0 || strcmp(szRespCode, AP_RESPCODE_INCONSISTENT) == 0) { if (!VERIFY_NORMAL(FillToaWithRespXml(ptoastru, pxmlstruResp)) || !VERIFY_NORMAL(SetVchInfo(pxmlstruResp, ptoastru, szVchNum, szVchArea))) RETURN_DELETE AP_DEMAND_EXT(AP_PATH_ACCNAME, pcso12stru->szAccName); AP_DEMAND_EXT(AP_PATH_BAL, szData); pcso12stru->dBal = atof(szData); AP_DEMAND_EXT(AP_PATH_AVAILBAL, szData); pcso12stru->dAvailBal = atof(szData); AP_DEMAND_EXT(AP_PATH_FEE, szData); pcso12stru->dFee = atof(szData); AP_DEMAND_EXT(AP_PATH_AREA, pcso12stru->szCityCode); AP_DEMAND_EXT(AP_PATH_AUTHCODE, pcso12stru->szAuthCode); AP_DEMAND_EXT(AP_PATH_RESPSEQNO, pcso12stru->szRespSeqNo); tprintf(ptoastru->szData, FMT_CSO12, VAR_CSO12); ptoastru->nLen = strlen(ptoastru->szData); } else if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_EXCEPTION)) RETURN_DELETE else VERIFY_NORMAL(FillToaWithRespXml(ptoastru, pxmlstruResp)); RETURN_DELETE}RESULT HandleCsWithdraw(PCTIASTRU ptiastru, PTOASTRU ptoastru){ char szData[AP_LEN_AMT + 1]; char szVchArea[AP_LEN_VCHAREA + 1]; char szVchNum[AP_LEN_VCHNUM + 1]; char szRespCode[AP_LEN_RESPCODE + 1]; CSI13STRU csi13stru; CSO13STRU cso13stru; PCSI13STRU pcsi13stru; PCSO13STRU pcso13stru; XMLSTRU xmlstruReq; XMLSTRU xmlstruResp; PXMLSTRU pxmlstruReq, pxmlstruResp; pxmlstruReq = &xmlstruReq; pxmlstruResp = &xmlstruResp; memset(&xmlstruReq, 0, sizeof(xmlstruReq)); memset(&xmlstruResp, 0, sizeof(xmlstruResp)); memset(&csi13stru, 0, sizeof(csi13stru)); memset(&cso13stru, 0, sizeof(cso13stru)); pcsi13stru = &csi13stru; pcso13stru = &cso13stru; /* * 创建XML请求报文结构 */ ASSURE_NORMAL(CreateXml(pxmlstruReq, FALSE, AP_PATH_ROOT, NULL)) /* * 根据TIA填写请求XML的公共域 */ ASSURE_NORMAL(FillReqXmlWithTia(ptiastru, pxmlstruReq)) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_WITHDRAW)) tscanf(ptiastru->szDataA, FMT_CSI13_A, VAR_CSI13_A); ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_ACCNO, pcsi13stru->szAccNo)) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_ACCPWD, pcsi13stru->szAccPwd)) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_EXPDATE, pcsi13stru->szExpDate)) if (strcmp(pcsi13stru->szTrack2, "") != 0) { ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "Y")) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACK2, pcsi13stru->szTrack2)) ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACK3, pcsi13stru->szTrack3)) } else ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "N")) sprintf(szData, "%19.2lf", pcsi13stru->dAmt); ASSURE_NORMAL(AP_INSERT_EXT(AP_PATH_AMT, szData)) /* * 提交交易 */ ASSURE_NORMAL(ApCaSubmit(pxmlstruReq, pxmlstruResp)) /* * 根据应答XML填写TOA必填项 */ AP_DEMAND_EXT(AP_PATH_RESPCODE, szRespCode); if (strcmp(szRespCode, AP_RESPCODE_ACCEPT) == 0 || strcmp(szRespCode, AP_RESPCODE_INCONSISTENT) == 0) { if (!VERIFY_NORMAL(FillToaWithRespXml(ptoastru, pxmlstruResp)) || !VERIFY_NORMAL(SetVchInfo(pxmlstruResp, ptoastru, szVchNum, szVchArea))) RETURN_DELETE AP_DEMAND_EXT(AP_PATH_ACCNAME, pcso13stru->szAccName); AP_DEMAND_EXT(AP_PATH_BAL, szData); pcso13stru->dBal = atof(szData); AP_DEMAND_EXT(AP_PATH_AVAILBAL, szData); pcso13stru->dAvailBal = atof(szData); AP_DEMAND_EXT(AP_PATH_FEE, szData); pcso13stru->dFee = atof(szData); AP_DEMAND_EXT(AP_PATH_AREA, pcso13stru->szCityCode); AP_DEMAND_EXT(AP_PATH_AUTHCODE, pcso13stru->szAuthCode); AP_DEMAND_EXT(AP_PATH_RESPSEQNO, pcso13stru->szRespSeqNo); tprintf(ptoastru->szData, FMT_CSO13, VAR_CSO13); ptoastru->nLen = strlen(ptoastru->szData); } else if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_EXCEPTION)) RETURN_DELETE else VERIFY_NORMAL(FillToaWithRespXml(ptoastru, pxmlstruResp)); RETURN_DELETE}RESULT HandleCsRefund(PCTIASTRU ptiastru, PTOASTRU ptoastru){ char szData[AP_LEN_AMT + 1]; char szVchArea[AP_LEN_VCHAREA + 1]; char szVchNum[AP_LEN_VCHNUM + 1]; char szRespCode[AP_LEN_RESPCODE + 1]; CSI14STRU csi14stru; CSO14STRU cso14stru; PCSI14STRU pcsi14stru; PCSO14STRU pcso14stru; XMLSTRU xmlstruReq; XMLSTRU xmlstruResp; PXMLSTRU pxmlstruReq, pxmlstruResp; pxmlstruReq = &xmlstruReq; pxmlstruResp = &xmlstruResp; memset(&xmlstruReq, 0, sizeof(xmlstruReq)); memset(&xmlstruResp, 0, sizeof(xmlstruResp)); memset(&csi14stru, 0, sizeof(csi14stru)); memset(&cso14stru, 0, sizeof(cso14stru)); pcsi14stru = &csi14stru; pcso14stru = &cso14stru; /* * 创建XML请求报文结构 */ ASSURE_NORMAL(CreateXml(pxmlstruReq, FALSE, AP_PATH_ROOT, NULL)) /* * 根据TIA填写请求XML的公共域 */ ASSURE_NORMAL(FillReqXmlWithTia(ptiastru, pxmlstruReq))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -