📄 handle.cpre
字号:
RESULT HandleConsume(PISO8583STRU piso8583stru){ UINT nBit = 0; XMLSTRU xmlstruReq, xmlstruResp; BOOL bIsReverse; memset(&xmlstruReq, 0, sizeof(xmlstruReq)); memset(&xmlstruResp, 0, sizeof(xmlstruResp)); bIsReverse = IsReverse(piso8583stru); nBit = bIsReverse ? BIT_MAC128 : BIT_MAC64; ASSURE_NORMAL(VerifyMac(piso8583stru, cTransMac, nBit)) ASSURE_NORMAL(CreateXml(&xmlstruReq, FALSE, AP_PATH_ROOT, NULL)) ASSURE_NORMAL(GetConsume(&xmlstruReq, piso8583stru, bIsReverse)) ASSURE_NORMAL(RecordJournal(&xmlstruReq, piso8583stru)) ASSURE_NORMAL(ApCaSubmit(&xmlstruReq, &xmlstruResp)) if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_EXCEPTION)) RETURN_RESULT(EXCEPTION) else { if (!VERIFY_NORMAL(SetConsume(piso8583stru, &xmlstruResp, bIsReverse))) if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_ACCEPT)) RETURN_RESULT(EXCEPTION) } RETURN_RESULT(NORMAL)}/* * 退货。 */RESULT GetRefund(PXMLSTRU pxmlstruReq, PCISO8583STRU piso8583stru){ ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_MSGTYPE, AP_MSGTYPE_SUBMITREQ)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_REFUND)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_REQID, AP_REQID_ISI)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "N")); ASSERT_NORMAL(GetReqDate(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetReqTime(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetReqSeqNo(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetOrgReqType(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAccNo(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAccPwd(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetCurrType(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAmt(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetFee(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetExpDate(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetMerchNo(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetMerchType(piso8583stru, pxmlstruReq)); VERIFY_NORMAL(GetAuthCode(pxmlstruReq, piso8583stru)); ASSERT_NORMAL(GetSettleDate(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAgent(piso8583stru, pxmlstruReq)); return NORMAL;}RESULT SetRefund(PISO8583STRU piso8583stru, PCXMLSTRU pxmlstruResp){ SetBitInIso8583(piso8583stru, BIT_ENTRYMODE, NULL, 0); SetBitInIso8583(piso8583stru, BIT_PINCAPTURECODE, NULL, 0); SetBitInIso8583(piso8583stru, BIT_TRACK2, NULL, 0); SetBitInIso8583(piso8583stru, BIT_TRACK3, NULL, 0); SetBitInIso8583(piso8583stru, BIT_ACCEPTORNAME, NULL, 0); SetBitInIso8583(piso8583stru, BIT_PIN, NULL, 0); SetBitInIso8583(piso8583stru, BIT_ORGDATA, NULL, 0); ASSERT_NORMAL(SetRespCode(pxmlstruResp, piso8583stru)); ASSERT_NORMAL(SetAddResp(pxmlstruResp, piso8583stru)); ASSERT_NORMAL(SetMac(piso8583stru, cTransMac, BIT_MAC128)); return NORMAL;}RESULT HandleRefund(PISO8583STRU piso8583stru){ UINT nBit = BIT_MAC128; XMLSTRU xmlstruReq, xmlstruResp; UINT nDataLen; memset(&xmlstruReq, 0, sizeof(xmlstruReq)); memset(&xmlstruResp, 0, sizeof(xmlstruResp)); ASSURE_NORMAL(VerifyMac(piso8583stru, cTransMac, BIT_MAC128)) ASSURE_NORMAL(CreateXml(&xmlstruReq, FALSE, AP_PATH_ROOT, NULL)) ASSURE_NORMAL(GetRefund(&xmlstruReq, piso8583stru)) ASSURE_NORMAL(RecordJournal(&xmlstruReq, piso8583stru)) ASSURE_NORMAL(ApCaSubmit(&xmlstruReq, &xmlstruResp)) if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_EXCEPTION)) RETURN_RESULT(EXCEPTION) else { if (!VERIFY_NORMAL(SetRefund(piso8583stru, &xmlstruResp))) if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_ACCEPT)) RETURN_RESULT(EXCEPTION) } RETURN_RESULT(NORMAL)}/* * 预授权。 */RESULT GetAuth(PXMLSTRU pxmlstruReq, PCISO8583STRU piso8583stru, BOOL bIsReverse){ ASSERT_NORMAL(INSERT_MSGTYPE(bIsReverse)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_AUTH)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_REQID, AP_REQID_ISI)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_MANUALAUTH, "N")); ASSERT_NORMAL(GetReqDate(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetReqTime(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAccNo(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetCurrType(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAmt(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetFee(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetMerchNo(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetMerchType(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetSettleDate(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetOrgReqType(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAgent(piso8583stru, pxmlstruReq)); if (!bIsReverse) { ASSERT_NORMAL(GetReqSeqNo(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAccPwd(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetTrack2(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetTrack3(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetExpDate(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "Y")); } else { ASSERT_NORMAL(GetReqSeqNoInReverse(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "N")); } return NORMAL;}RESULT SetAuth(PISO8583STRU piso8583stru, PCXMLSTRU pxmlstruResp, BOOL bIsReverse){ SetBitInIso8583(piso8583stru, BIT_ENTRYMODE, NULL, 0); SetBitInIso8583(piso8583stru, BIT_PINCAPTURECODE, NULL, 0); SetBitInIso8583(piso8583stru, BIT_TRACK2, NULL, 0); SetBitInIso8583(piso8583stru, BIT_TRACK3, NULL, 0); SetBitInIso8583(piso8583stru, BIT_ACCEPTORNAME, NULL, 0); SetBitInIso8583(piso8583stru, BIT_PIN, NULL, 0); SetBitInIso8583(piso8583stru, BIT_ORGDATA, NULL, 0); ASSERT_NORMAL(SetRespCode(pxmlstruResp, piso8583stru)); ASSERT_NORMAL(SetAddResp(pxmlstruResp, piso8583stru)); if (!bIsReverse) { ASSERT_NORMAL(SetExpDate(pxmlstruResp, piso8583stru)); ASSERT_NORMAL(SetAuthResp(pxmlstruResp, piso8583stru)); ASSERT_NORMAL(SetAddAmt(pxmlstruResp, piso8583stru)); } ASSERT_NORMAL(SetMac(piso8583stru, cTransMac, bIsReverse ? BIT_MAC128 : BIT_MAC64)); return NORMAL;}RESULT HandleAuth(PISO8583STRU piso8583stru){ UINT nBit = 0; XMLSTRU xmlstruReq, xmlstruResp; BOOL bIsReverse; memset(&xmlstruReq, 0, sizeof(xmlstruReq)); memset(&xmlstruResp, 0, sizeof(xmlstruResp)); bIsReverse = IsReverse(piso8583stru); nBit = bIsReverse ? BIT_MAC128 : BIT_MAC64; ASSURE_NORMAL(VerifyMac(piso8583stru, cTransMac, nBit)) ASSURE_NORMAL(CreateXml(&xmlstruReq, FALSE, AP_PATH_ROOT, NULL)) ASSURE_NORMAL(GetAuth(&xmlstruReq, piso8583stru, bIsReverse)) ASSURE_NORMAL(RecordJournal(&xmlstruReq, piso8583stru)) ASSURE_NORMAL(ApCaSubmit(&xmlstruReq, &xmlstruResp)) if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_EXCEPTION)) RETURN_RESULT(EXCEPTION) else { if (!VERIFY_NORMAL(SetAuth(piso8583stru, &xmlstruResp, bIsReverse))) if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_ACCEPT)) RETURN_RESULT(EXCEPTION) } RETURN_RESULT(NORMAL)}/* * 柜台授权。 */RESULT GetManualAuth(PXMLSTRU pxmlstruReq, PCISO8583STRU piso8583stru, BOOL bIsReverse){ ASSERT_NORMAL(INSERT_MSGTYPE(bIsReverse)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_AUTH)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_REQID, AP_REQID_ISI)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_MANUALAUTH, "Y")); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "N")); ASSERT_NORMAL(GetReqDate(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetReqTime(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAccNo(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetCurrType(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAmt(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetFee(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetMerchNo(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetMerchType(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetSettleDate(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetOrgReqType(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAgent(piso8583stru, pxmlstruReq)); if (!bIsReverse) { ASSERT_NORMAL(GetReqSeqNo(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetCertInfo(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetExpDate(piso8583stru, pxmlstruReq)); } else ASSERT_NORMAL(GetReqSeqNoInReverse(piso8583stru, pxmlstruReq)); return NORMAL;}RESULT SetManualAuth(PISO8583STRU piso8583stru, PCXMLSTRU pxmlstruResp, BOOL bIsReverse){ SetBitInIso8583(piso8583stru, BIT_ENTRYMODE, NULL, 0); SetBitInIso8583(piso8583stru, BIT_PINCAPTURECODE, NULL, 0); SetBitInIso8583(piso8583stru, BIT_ACCEPTORNAME, NULL, 0); SetBitInIso8583(piso8583stru, BIT_ORGDATA, NULL, 0); ASSERT_NORMAL(SetRespCode(pxmlstruResp, piso8583stru)); ASSERT_NORMAL(SetAddResp(pxmlstruResp, piso8583stru)); if (!bIsReverse) { ASSERT_NORMAL(SetExpDate(pxmlstruResp, piso8583stru)); ASSERT_NORMAL(SetAuthResp(pxmlstruResp, piso8583stru)); ASSERT_NORMAL(SetAddAmt(pxmlstruResp, piso8583stru)); } ASSERT_NORMAL(SetMac(piso8583stru, cTransMac, bIsReverse ? BIT_MAC128 : BIT_MAC64)); return NORMAL;}RESULT HandleManualAuth(PISO8583STRU piso8583stru){ UINT nBit = 0; XMLSTRU xmlstruReq, xmlstruResp; BOOL bIsReverse; memset(&xmlstruReq, 0, sizeof(xmlstruReq)); memset(&xmlstruResp, 0, sizeof(xmlstruResp)); bIsReverse = IsReverse(piso8583stru); nBit = bIsReverse ? BIT_MAC128 : BIT_MAC64; ASSURE_NORMAL(VerifyMac(piso8583stru, cTransMac, nBit)) ASSURE_NORMAL(CreateXml(&xmlstruReq, FALSE, AP_PATH_ROOT, NULL)) ASSURE_NORMAL(GetManualAuth(&xmlstruReq, piso8583stru, bIsReverse)) ASSURE_NORMAL(RecordJournal(&xmlstruReq, piso8583stru)) ASSURE_NORMAL(ApCaSubmit(&xmlstruReq, &xmlstruResp)) if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_EXCEPTION)) RETURN_RESULT(EXCEPTION) else { if (!VERIFY_NORMAL(SetManualAuth(piso8583stru, &xmlstruResp, bIsReverse))) if (ApIsRespCode(&xmlstruResp, AP_RESPCODE_ACCEPT)) RETURN_RESULT(EXCEPTION) } RETURN_RESULT(NORMAL)}/* * 授权完成。 */RESULT GetAuthSettle(PXMLSTRU pxmlstruReq, PCISO8583STRU piso8583stru, BOOL bIsReverse){ ASSERT_NORMAL(INSERT_MSGTYPE(bIsReverse)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRANSCODE, AP_TRANSCODE_CS_AUTHSETTLE)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_REQID, AP_REQID_ISI)); ASSERT_NORMAL(GetReqDate(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetReqTime(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAccNo(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetCurrType(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAmt(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetFee(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetMerchNo(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetMerchType(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetSettleDate(piso8583stru, pxmlstruReq)); VERIFY_NORMAL(GetAuthCode(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetOrgReqType(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAgent(piso8583stru, pxmlstruReq)); if (!bIsReverse) { ASSERT_NORMAL(GetReqSeqNo(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetOrgReqSeqNo(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetAccPwd(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetTrack2(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetTrack3(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(GetExpDate(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "Y")); } else { ASSERT_NORMAL(GetReqSeqNoInReverse(piso8583stru, pxmlstruReq)); ASSERT_NORMAL(AP_INSERT_EXT(AP_PATH_TRACKVERIFY, "N")); } return NORMAL;}RESULT SetAuthSettle(PISO8583STRU piso8583stru, PCXMLSTRU pxmlstruResp, BOOL bIsReverse){ SetBitInIso8583(piso8583stru, BIT_ENTRYMODE, NULL, 0); SetBitInIso8583(piso8583stru, BIT_PINCAPTURECODE, NULL, 0); SetBitInIso8583(piso8583stru, BIT_TRACK2, NULL, 0); SetBitInIso8583(piso8583stru, BIT_TRACK3, NULL, 0); SetBitInIso8583(piso8583stru, BIT_ACCEPTORNAME, NULL, 0); SetBitInIso8583(piso8583stru, BIT_PIN, NULL, 0); SetBitInIso8583(piso8583stru, BIT_ORGDATA, NULL, 0); ASSERT_NORMAL(SetRespCode(pxmlstruResp, piso8583stru)); ASSERT_NORMAL(SetAddResp(pxmlstruResp, piso8583stru)); if (!bIsReverse) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -