private JCCResponse ParseEFTTransactionResponse(string[] msg) { var result = new JCCResponse(); var sepDecimal = Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator); result.Length = Helper.TryParse <int>(msg[0], 6); result.SessionId = Helper.TryParse <string>(msg[1], 12); result.AuthType = Helper.TryParse <string>(msg[2], 2); result.FinalAmount = Helper.TryParse <string>(msg[3], 12); result.AdditionalAmount = Helper.TryParse <string>(msg[4], 12); result.BasicCurrencyCode = Helper.TryParse <string>(msg[5], 3); result.ResponseCode = Helper.TryParse <string>(msg[6], 2); result.AuthCode = Helper.TryParse <string>(msg[7], 6); result.RRNFinancialAuthorization = Helper.TryParse <string>(msg[8], 12); result.PanNo = Helper.TryParse <string>(msg[9], 20); result.ExpiryDate = Helper.TryParse <DateTime>(msg[10], 4, "yyMM"); result.TokenNo = Helper.TryParse <string>(msg[11], 300); result.EncryptedPan = Helper.TryParse <string>(msg[12], 300); result.DateAndDatime = Helper.TryParse <DateTime>(msg[13], 12, "ddMMyyHHmmss"); result.HostResponse = Helper.TryParse <string>(msg[14], 3); result.CardProduct = Helper.TryParse <string>(msg[15], 30); result.ReceiptNo = Helper.TryParse <string>(msg[16], 4); result.BatchNo = Helper.TryParse <string>(msg[17], 6); result.TerminalNo = Helper.TryParse <string>(msg[18], 12); result.CVMResults = Helper.TryParse <string>(msg[19], 2); result.EntryMode = Helper.TryParse <string>(msg[20], 4); result.POSVersion = Helper.TryParse <string>(msg[21], 12); result.DataToBePrinted = Helper.TryParse <string>(msg[22], 3000); result.DCCAmount = Helper.TryParse <decimal>(msg[23], 12); result.DCCCurrency = Helper.TryParse <string>(msg[24], 3); result.DCCExchangeRateMarkUp = Helper.TryParse <decimal>(msg[25], 12); result.DCCMarkUpPercentage = Helper.TryParse <decimal>(msg[26], 8); result.NOInstalments = Helper.TryParse <int>(msg[27], 2); result.DaysForFirstInstalments = Helper.TryParse <int>(msg[28], 2); result.LoyaltyPointsBalance = Helper.TryParse <decimal>(msg[29], 12) / 100; result.LoyaltyPointsRedeemed = Helper.TryParse <decimal>(msg[30], 12) / 100; result.GiftBalance = Helper.TryParse <string>(msg[31], 12); result.GiftReceipt = Helper.TryParse <string>(msg[32], 4); result.BOCLoyaltyItems = Helper.TryParse <string>(msg[33], 2000); result.MerchantName = Helper.TryParse <string>(msg[34], 24); result.Address = Helper.TryParse <string>(msg[35], 30); result.PostalCode = Helper.TryParse <string>(msg[36], 10); result.VATRegNo = Helper.TryParse <string>(msg[37], 9); result.MCC = Helper.TryParse <string>(msg[38], 4); }
public GenericResponse BuildPaymentResponse(GenericResponse response, string responseString) { var resObj = new JCCResponse(); string[] valuesArray; valuesArray = responseString.Split((char)0x1C); resObj.Length = Int32.Parse(valuesArray[0]); resObj.SessionId = valuesArray[1]; resObj.AuthType = valuesArray[2]; resObj.FinalAmount = double.Parse(valuesArray[3]); resObj.AdditionalAmount = double.Parse(valuesArray[4]); resObj.BasicCurrencyCode = valuesArray[5]; resObj.ResponseCode = valuesArray[6]; resObj.AuthCode = valuesArray[7]; resObj.RRNFinancialAuthorization = valuesArray[8]; resObj.PanNo = valuesArray[9]; resObj.ExpiryDate = DateTime.Parse(valuesArray[10]); resObj.TokenNo = valuesArray[11]; resObj.EncryptedPan = valuesArray[12]; resObj.DateAndDatime = DateTime.Parse(valuesArray[13]); resObj.HostResponse = valuesArray[14]; resObj.CardProduct = valuesArray[15]; resObj.ReceiptNo = valuesArray[16]; resObj.BatchNo = valuesArray[17]; resObj.TerminalNo = valuesArray[18]; resObj.CVMResults = valuesArray[19]; resObj.EntryMode = valuesArray[20]; resObj.POSVersion = valuesArray[21]; resObj.DataToBePrinted = valuesArray[22]; resObj.DCCAmount = decimal.Parse(valuesArray[23]); resObj.DCCCurrency = valuesArray[24]; resObj.DCCExchangeRateMarkUp = valuesArray[25]; resObj.DCCMarkUpPercentage = valuesArray[26]; resObj.NOInstalments = Int32.Parse(valuesArray[27]); resObj.DaysForFirstInstalments = Int32.Parse(valuesArray[28]); resObj.LoyaltyPointsRedeemed = decimal.Parse(valuesArray[29]); resObj.LoyaltyPointsBalance = decimal.Parse(valuesArray[30]); resObj.GiftBalance = valuesArray[31]; resObj.GiftReceipt = valuesArray[32]; resObj.BOCLoyaltyItems = valuesArray[33]; response.Result.ResponseCode = resObj.ResponseCode; return(response); }
public GenericResponse Payment(IGenericRequest gRequest, GenericResponse response) { var request = MappingRequest(gRequest); var status = "Error"; var stringResponse = ""; var res = new JCCResponse(); var content = request.GetContent(Formatting); if (DoRequest(content)) { stringResponse = Socket.Receive(); if (stringResponse != null) { var r = Helper.ResponseSplitedBySeparator(stringResponse, Convert.ToChar(Convert.ToUInt32(Formatting.Fields.FirstOrDefault().Value, 16))); res = ParseEFTTransactionResponse(r); response = BuildPaymentResponse(response, stringResponse); status = "success"; } } response.Result.Status = status; return(response); }