Пример #1
0
        /// <summary>
        ///     Führt eine Initalisierung am Gateway durch.
        ///     Kommuniaktion erfolgt im JSON Format
        /// </summary>
        private void RunPaymentInit(PaySecupayInit secupayInit)
        {
            // Die Initialisierung wird in ein Data Transport Objekte gewandelt, das als JSON seralisiert werden kann
            InitRequestDtoRoot dto = TDtoFactory.CreateInitRequestDtoRoot(secupayInit, Config);

            secupayInit.ApiUrl  = string.Format("{0}/payment/init", secupayInit.ApiUrl);
            secupayInit.JsonOut = dto.ToJsonString();

            // Anfrage vorab in DB speichern
            Context.SaveChanges();

            // Anfrage am Gateway synchron durchführen und Antwort speichern
            secupayInit.JsonIn = RunWebRequest(secupayInit.ApiUrl, secupayInit.JsonOut);
            Context.SaveChanges();

            // Die JSON Antwort in ein Data Transport Objekt deserialisieren
            var response = secupayInit.JsonIn.FromJsonToObject <InitResponseDtoRoot>();

            // Einzelne Wert in Objekt übernehmen
            secupayInit.ResponseStatus    = response.Status;
            secupayInit.ResponseIFrameUrl = response.Data.IFrameUrl;
            secupayInit.ResponseHash      = response.Data.Hash;
            secupayInit.ResponseErrors    = response.Errors;

            // Antwort in DB sichern
            Context.SaveChanges();
        }
Пример #2
0
        /// <summary>
        ///     Zahlung initialisieren
        /// </summary>
        public void InitPayment(PaySecupayInit secupayInit)
        {
            // Anfrage in DB sichern
            Context.PaySecupayInit.Add(secupayInit);
            Context.SaveChanges();

            // Anfrage am Gateway durchführen
            RunPaymentInit(secupayInit);
        }
Пример #3
0
        /// <summary>
        ///     Erzeugt eine neues Initialisierungs Objekte für den angegebenen Betrag.
        ///     Grundlegenden Parameter werden aus der Config entnommen
        /// </summary>
        public PaySecupayInit CreateSecupayInit(decimal amount)
        {
            PaySecupayInit paySecupayInit = new PaySecupayInit
            {
                ApiKey       = Config.ApiKey,
                ApiVersion   = Config.ApiVersion,
                Amount       = (int)Math.Abs(amount * 100m),
                Currency     = "EUR",
                ApiUrl       = Config.SecupayUrl,
                UrlSuccess   = Config.UrlSuccess,
                UrlFailure   = Config.UrlFailure,
                UrlPush      = Config.UrlPush,
                Langauge     = "de_DE",
                Shop         = Config.Shop,
                ShopVersion  = Config.Shop + " " + Assembly.GetExecutingAssembly().GetName().Version,
                ModulVersion = Config.Shop + " " + Assembly.GetExecutingAssembly().GetName().Version
            }.SetNew(Config.Username);

            return(paySecupayInit);
        }
Пример #4
0
        internal static InitRequestDtoRoot CreateInitRequestDtoRoot(PaySecupayInit secupayInit, TPaySecupayConfig config)
        {
            InitRequestDtoRoot root = new InitRequestDtoRoot
            {
                Data = new InitRequestDtoData
                {
                    ApiKey = secupayInit.ApiKey,
                    Amount = secupayInit.Amount,
                    Currency = secupayInit.Currency,
                    ApiVersion = secupayInit.ApiVersion,

                    Title = secupayInit.Title,
                    Firstname = secupayInit.Firstname,
                    Lastname = secupayInit.Lastname,
                    Company = secupayInit.Company,
                    Street = secupayInit.Street,
                    Housenumber = secupayInit.Housenumber,
                    Zip = secupayInit.Zip,
                    City = secupayInit.City,
                    Country = secupayInit.Country,
                    Telephone = secupayInit.Telephone,
                    Dob = secupayInit.Dob,

                    Demo = secupayInit.Demo,
                    Email = secupayInit.Email,
                    Ip = secupayInit.Ip,
                    Langauge = secupayInit.Langauge,
                    ModulVersion = secupayInit.ModulVersion,
                    Note = secupayInit.Note,
                    OrderId = secupayInit.OrderId,
                    PaymentAction = secupayInit.PaymentAction,
                    PaymentType = secupayInit.PaymentType,
                    Purpose = secupayInit.Purpose,
                    Shop = secupayInit.Shop,
                    ShopVersion = secupayInit.ShopVersion,
                    UrlFailure = secupayInit.UrlFailure,
                    UrlPush = secupayInit.UrlPush,
                    UrlSuccess = secupayInit.UrlSuccess
                }
            };

            if (secupayInit.DeliveryAddress != null && config.SendDeliveryAddress)
            {
                root.Data.DeliveryAddress = new InitRequestDtoDeliveryAddress
                {
                    Firstname = secupayInit.DeliveryAddress.Firstname,
                    Lastname = secupayInit.DeliveryAddress.Lastname,
                    Company = secupayInit.DeliveryAddress.Company,
                    Street = secupayInit.DeliveryAddress.Street,
                    Housenumber = secupayInit.DeliveryAddress.Housenumber,
                    Zip = secupayInit.DeliveryAddress.Zip,
                    City = secupayInit.DeliveryAddress.City,
                    Country = secupayInit.DeliveryAddress.Country,
                };
            }

            if (secupayInit.Basket != null && secupayInit.Basket.Any())
            {
                root.Data.Basket = new List<InitRequestDtoBasket>();
                foreach (var b in secupayInit.Basket)
                {
                    root.Data.Basket.Add(new InitRequestDtoBasket
                    {
                        ArticleNumber = b.ArticleNumber,
                        Model = b.Model,
                        Ean = b.Ean,
                        Name = b.Name,
                        Price = b.Price,
                        Quantity = b.Quantity,
                        Tax = b.Tax,
                        Total = b.Total
                    });
                }
            }

            return root;
        }
Пример #5
0
        internal static InitRequestDtoRoot CreateInitRequestDtoRoot(PaySecupayInit secupayInit, TPaySecupayConfig config)
        {
            InitRequestDtoRoot root = new InitRequestDtoRoot
            {
                Data = new InitRequestDtoData
                {
                    ApiKey     = secupayInit.ApiKey,
                    Amount     = secupayInit.Amount,
                    Currency   = secupayInit.Currency,
                    ApiVersion = secupayInit.ApiVersion,

                    Title       = secupayInit.Title,
                    Firstname   = secupayInit.Firstname,
                    Lastname    = secupayInit.Lastname,
                    Company     = secupayInit.Company,
                    Street      = secupayInit.Street,
                    Housenumber = secupayInit.Housenumber,
                    Zip         = secupayInit.Zip,
                    City        = secupayInit.City,
                    Country     = secupayInit.Country,
                    Telephone   = secupayInit.Telephone,
                    Dob         = secupayInit.Dob,

                    Demo          = secupayInit.Demo,
                    Email         = secupayInit.Email,
                    Ip            = secupayInit.Ip,
                    Langauge      = secupayInit.Langauge,
                    ModulVersion  = secupayInit.ModulVersion,
                    Note          = secupayInit.Note,
                    OrderId       = secupayInit.OrderId,
                    PaymentAction = secupayInit.PaymentAction,
                    PaymentType   = secupayInit.PaymentType,
                    Purpose       = secupayInit.Purpose,
                    Shop          = secupayInit.Shop,
                    ShopVersion   = secupayInit.ShopVersion,
                    UrlFailure    = secupayInit.UrlFailure,
                    UrlPush       = secupayInit.UrlPush,
                    UrlSuccess    = secupayInit.UrlSuccess
                }
            };

            if (secupayInit.DeliveryAddress != null && config.SendDeliveryAddress)
            {
                root.Data.DeliveryAddress = new InitRequestDtoDeliveryAddress
                {
                    Firstname   = secupayInit.DeliveryAddress.Firstname,
                    Lastname    = secupayInit.DeliveryAddress.Lastname,
                    Company     = secupayInit.DeliveryAddress.Company,
                    Street      = secupayInit.DeliveryAddress.Street,
                    Housenumber = secupayInit.DeliveryAddress.Housenumber,
                    Zip         = secupayInit.DeliveryAddress.Zip,
                    City        = secupayInit.DeliveryAddress.City,
                    Country     = secupayInit.DeliveryAddress.Country,
                };
            }

            if (secupayInit.Basket != null && secupayInit.Basket.Any())
            {
                root.Data.Basket = new List <InitRequestDtoBasket>();
                foreach (var b in secupayInit.Basket)
                {
                    root.Data.Basket.Add(new InitRequestDtoBasket
                    {
                        ArticleNumber = b.ArticleNumber,
                        Model         = b.Model,
                        Ean           = b.Ean,
                        Name          = b.Name,
                        Price         = b.Price,
                        Quantity      = b.Quantity,
                        Tax           = b.Tax,
                        Total         = b.Total
                    });
                }
            }

            return(root);
        }