示例#1
0
        public byte[] ReversalAdviceResponse(ReversalRequestModel msg)
        {
            if (string.IsNullOrEmpty(msg.Mti) || msg.Mti != "0420")
            {
                throw new ArgumentException("Mti is not valid for ReversalAdviceResponse(0420)");
            }
            var model = new AS2805Model("0430");

            model.SetField(3, msg.ProcessingCode);
            model.SetField(4, msg.AmountTran);
            model.SetField(7, msg.TranDate);
            model.SetField(11, msg.Stan);
            model.SetField(15, msg.DateSettlement);
            model.SetField(28, msg.AmtTranFee);
            model.SetField(32, msg.AcqInstIdCode);
            model.SetField(33, 61001001);                                       // FwdInstIdCode
            //model.SetField(39, "00"); // RespCode
            model.SetField(39, Response.GetRandomResponseCode(msg.TerminalId)); // RespCode
            model.SetField(41, msg.TerminalId);
            model.SetField(42, msg.CardAcptIdCode);
            model.SetField(53, msg.SecControlInfo);
            model.SetField(57, msg.AmountCash); // AmountCash
            model.SetField(64, msg.Mac64);
            return(model.ToBytes());
        }
示例#2
0
        public ReversalModel RequestAdviceReversal(ReversalHostNodeRequestDto dto, bool isRepeat)
        {
            IDataService svcData = new DataService(dto.P41TerminalId, dto.TranSeqNo, dto.AuthorizationNum);

            string cardAcceptorId = svcData.RetrieveCardAcceptorId();
            string nationalData   = svcData.RetrieveAddtlDataNat();
            int    securityBlock  = svcData.RetrieveSecurityBlock();
            int    acqInstId      = svcData.RetrieveAcqInstIdCode(); // 32
            int    fwdInstIdCode  = svcData.RetrieveFwdInstIdCode(); // 33

            //string cardAcceptorId = "437586000      "; // p42_card_acceptor_id
            //string nationalData = @"TCC01\EFC00000000\CCI0\FBKV\"; // p47_additional_response_national
            //int securityBlock = 2; // 53
            //int acqInstId = 560258; // 32
            //int fwdInstIdCode = 61100016; // 33
            string mac128 = "7001DC4E00000000"; // 90

            string mti = isRepeat != true ? "0420" : "0421";

            ReversalRequestModel model = new ReversalRequestModel
                                         (
                mti: mti,
                processingCode: dto.P3ProcessingCode,
                transactionAmount: dto.P4AmountTran,
                transactionDate: dto.P7TransmitDt,
                stan: dto.AuthorizationNum,
                timeLocal: dto.P12TimeLocalTran,
                dateLocation: dto.P13DateLocalTran,
                dateSettlement: dto.P15DateSettlement,
                posConditionCode: dto.P25PosConditionCode,
                transactionFee: dto.P28AmtTranFee,
                acqInstIdCode: acqInstId,
                fwdInstIdCode: fwdInstIdCode,
                track2: dto.P35Track2,
                retRefNo: dto.TranSeqNo,
                terminalId: dto.P41TerminalId,
                cardAcptIdCode: cardAcceptorId,
                nameLocation: dto.P43NameLocation,
                addtlDataNat: nationalData,
                secControlInfo: securityBlock,
                amountCash: dto.P57AmountCash,
                mac128: mac128,
                miscellaneousX: dto.MiscellaneousX
                                         );

            return(model);
        }
示例#3
0
        public BankRawMessage GenerateReversalResponse()
        {
            ReversalRequestModel model = _baseModel as ReversalRequestModel;

            return(new BankRawMessage(_responseBuilder.ReversalAdviceResponse(model)));
        }
示例#4
0
        public BankRawMessage GenerateReversalResponse(ReversalRequestModel model)
        {
            BankRawMessage result = new BankRawMessage(_responseBuilder.ReversalAdviceResponse(model));

            return(result);
        }