public Sender(PlugIn.Payment.Models.Request model)
        {
            _domain               = "PlugIn.Payment.Domain".appSettingValue();
            _uriToken             = "PlugIn.Payment.AzurePayment.Uri.Token".appSettingValue();
            _uriXml               = "PlugIn.Payment.AzurePayment.Uri.Xml".appSettingValue();
            _sender               = "PlugIn.Payment.AzurePayment.Sender".appSettingValue();
            _channel              = "PlugIn.Payment.AzurePayment.Channel".appSettingValue();
            _transactionUserLogin = "******".appSettingValue();
            _transactionUserPwd   = "PlugIn.Payment.AzurePayment.Password".appSettingValue();
            _type        = "PlugIn.Payment.AzurePayment.Type".appSettingValue();
            _mode        = "PlugIn.Payment.AzurePayment.Mode".appSettingValue();
            _responses   = "PlugIn.Payment.AzurePayment.responses".appSettingValue();
            _token       = "PlugIn.Payment.AzurePayment.Token".appSettingValue();
            _paymentCode = "PlugIn.Payment.AzurePayment.PaymentCode".appSettingValue();
            _paymentMemo = "PlugIn.Payment.AzurePayment.PaymentMemo".appSettingValue();


            requestModel = model;
            _token       = GenerateToken(requestModel.PAYMENT.Amount.ToString(), requestModel.PAYMENT.Currency.ToString());
        }
        /// <summary>
        /// Frontend
        /// </summary>
        /// <returns></returns>
        public static string GetToken(string amount, string currency, PlugIn.Payment.Models.Request model)
        {
            var _domain               = "PlugIn.Payment.Domain".appSettingValue();
            var _uriToken             = "PlugIn.Payment.AzurePayment.Uri.Token".appSettingValue();
            var _uriXml               = "PlugIn.Payment.AzurePayment.Uri.Xml".appSettingValue();
            var _sender               = "PlugIn.Payment.AzurePayment.Sender".appSettingValue();
            var _channel              = "PlugIn.Payment.AzurePayment.Channel".appSettingValue();
            var _transactionUserLogin = "******".appSettingValue();
            var _transactionUserPwd   = "PlugIn.Payment.AzurePayment.Password".appSettingValue();
            var _type        = "PlugIn.Payment.AzurePayment.Type".appSettingValue();
            var _mode        = "PlugIn.Payment.AzurePayment.Mode".appSettingValue();
            var _responses   = "PlugIn.Payment.AzurePayment.responses".appSettingValue();
            var _token       = "PlugIn.Payment.AzurePayment.Token".appSettingValue();
            var _paymentCode = "PlugIn.Payment.AzurePayment.PaymentCode".appSettingValue();
            var _paymentMemo = "PlugIn.Payment.AzurePayment.PaymentMemo".appSettingValue();

            var token = string.Empty;

            System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");
            var data = new NameValueCollection()
            {
                { "SECURITY.SENDER", _sender },
                { "USER.LOGIN", _transactionUserLogin },
                { "USER.PWD", _transactionUserPwd },
                { "TRANSACTION.CHANNEL", _channel },
                { "TRANSACTION.MODE", _mode },
                { "PAYMENT.TYPE", _type },
                { "PRESENTATION.AMOUNT", amount },
                { "PRESENTATION.CURRENCY", currency },

                { "IDENTIFICATION.SHOPPERID", _domain },
                { "IDENTIFICATION.TRANSACTIONID", model.TRANSACTION.ReferansID },
                { "NAME.FAMILY", model.CUSTOMER.FamliyName },
                { "NAME.GIVEN", model.CUSTOMER.Given },
                { "ADDRESS.STREET", model.ADRESS.Street },
                { "ADDRESS.ZIP", model.ADRESS.Zip.ToString() },
                { "ADDRESS.CITY", model.ADRESS.City },
                { "ADDRESS.COUNTRY", model.ADRESS.Country },

                { "CRITERION.CART.ITEM.1.NAME", model.ITEMS[0].Description },
                { "CRITERION.CART.ITEM.1.PRICE", model.ITEMS[0].Price.ToString(culture) },
                { "CRITERION.CART.ITEM.1.QUANTITY", model.ITEMS[0].Quantity.ToString() }
            };

            try
            {
                using (var webClient = new WebClient())
                {
                    var fullUriToken = string.Format("{0}/frontend/GenerateToken", _uriToken);
                    var result       = webClient.UploadValues(fullUriToken, data);
                    var serializer   = new JavaScriptSerializer();
                    var json         = serializer.Deserialize <Dictionary <string, dynamic> >(Encoding.UTF8.GetString(result));
                    if (json.ContainsKey("transaction"))
                    {
                        token = json["transaction"]["token"];
                    }
                    else
                    {
                        token = null;
                    }
                }
            }
            catch (Exception ex)
            {
                var e = ex;
                token = null;
            }
            return(token);
        }