Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }