Beispiel #1
0
        /// <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);
        }