/// <summary> /// Performs a Process Transaction request on First Data Gateway. /// </summary> /// <param name="request"></param> /// <returns></returns> public Response PerformAuthRequest(Request request) { RestClient _client; _client = new RestClient(ConfigurationManager.AppSettings["TokenExPaymentUrl"]); _client.AddDefaultHeader("Content-Type", "application/json"); string requestXML = RequestGenerator.GetRequest(request); var req = new RestRequest(); req.AddParameter("application/json", requestXML, ParameterType.RequestBody); var res = _client.Post(req); var jsonConf = new JsonSerializerSettings(); string authCode = ""; string transactionCode = ""; string cvvCode = ""; string avsCode = ""; Response1 response1 = JsonConvert.DeserializeObject <Response1>(res.Content); foreach (Param param in response1.Params) { if (param.Key.ToLower().Equals("auth_code")) { authCode = param.Value; } if (param.Key.ToLower().Equals("ref_num")) { transactionCode = param.Value; } //avs_result_code if (param.Key.ToLower().Equals("avs_result_code")) { avsCode = param.Value; } //cvv2_result_code if (param.Key.ToLower().Equals("cvv2_result_code")) { cvvCode = param.Value; } } Response response = new Response(); response.GatewayRequestRaw = requestXML; response.GatewayResponseRaw = res.Content; response.MerchantDefined1 = avsCode; response.MerchantDefined2 = cvvCode; Hashtable addinfo = new Hashtable(); SitePreference sitePreference = CSFactory.GetCacheSitePref(); sitePreference.LoadAttributeValues(); addinfo.Add("merchantId", sitePreference.GetAttributeValue <string>("gatewaymerchantid", string.Empty, string.Empty)); response.AdditionalInfo = addinfo; response.AuthCode = authCode; response.TransactionID = transactionCode; if (response1.TransactionResult) { response.ResponseType = TransactionResponseType.Approved; } else { response.ResponseType = TransactionResponseType.Denied; } return(response); }