public ReversalHostNodeRequestDto ReversalRequest(ReversalTritonNodeRequestDto req) { ICryptographyService svr = new CryptographyService(req.TerminalId); //string nameLocation = "800 LANGDON ST, MADISON AU"; string nameLocation = svr.GetTerminalLocation(); _log.Debug("Constructing Core Request Object"); var requestDto = new ReversalHostNodeRequestDto { P3ProcessingCode = req.TransactionCode, // from triton P4AmountTran = req.Amount1, // from triton /* Authorization transaction amount */ P7TransmitDt = DateTime.Now, P12TimeLocalTran = DateTime.Now, P13DateLocalTran = DateTime.Now, P15DateSettlement = DateTime.Now.AddDays(+1), P25PosConditionCode = req.PosCondCode, // from triton P28AmtTranFee = req.Amount2, // from triton /* Surcharge amount */ P35Track2 = req.Track2, // from triton P41TerminalId = req.TerminalId, // from triton P43NameLocation = nameLocation, P57AmountCash = req.Amount3, // from triton /* Dispensed amount */ TranSeqNo = req.TranSeqNo, // from triton MiscellaneousX = req.MiscellaneousX, // from triton AuthorizationNum = req.AuthorizationNum }; return(requestDto); }
public ReversalHostNodeResponseDto RequestReversal(ReversalHostNodeRequestDto req) { BaseModel res; ITransactionService svc = new TransactionService(); var model = svc.RequestAdviceReversal(req); byte[] rawBytes = _responseBuilder.ReversalAdviceRequest(model); try { res = _bank.Send(rawBytes, model.Stan); } catch (Exception ex) { if (ex is TimeoutException) { model = svc.RequestAdviceReversal(req, true); rawBytes = _responseBuilder.ReversalAdviceRequest(model); try { res = _bank.Send(rawBytes, model.Stan); } catch (Exception) { throw; } } else { throw; } } if (!(res is ReversalModel)) { throw new InvalidOperationException("incorrect responsed from Bank"); } else { ReversalModel reversal = res as ReversalModel; ReversalHostNodeResponseDto responseDto = new ReversalHostNodeResponseDto { Stan = reversal.Stan, ResponseCode = reversal.RespCode, ResponseDescription = reversal.RespDescription, ResponseAction = reversal.RespAction, AmountTran = reversal.AmountTran, AmtTranFee = reversal.AmtTranFee, AmountCash = reversal.AmountCash, TranSeqNo = model.TranSeqNo // set from request model }; return(responseDto); } }
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); }