示例#1
0
        public TicketGames.PagSeguro.Model.Billet MappingBillet(Domain.Model.Participant participant, Domain.Model.OrderDeliveryAddress orderDeliveryAddress, TicketGames.Domain.Model.Billet billet)
        {
            TicketGames.PagSeguro.Model.Billet billetPagSeguro = new PagSeguro.Model.Billet();

            billetPagSeguro.Price = billet.Value;

            billetPagSeguro.ShippingAddress = new TicketGames.PagSeguro.Model.ShippingAddress();

            billetPagSeguro.ShippingAddress.Street     = orderDeliveryAddress.Street;
            billetPagSeguro.ShippingAddress.Number     = orderDeliveryAddress.Number;
            billetPagSeguro.ShippingAddress.Complement = orderDeliveryAddress.Complement;
            billetPagSeguro.ShippingAddress.District   = orderDeliveryAddress.District;
            billetPagSeguro.ShippingAddress.ZipCode    = orderDeliveryAddress.ZipCode;
            billetPagSeguro.ShippingAddress.City       = orderDeliveryAddress.City;
            billetPagSeguro.ShippingAddress.State      = orderDeliveryAddress.State;

            billetPagSeguro.Buyer = new TicketGames.PagSeguro.Model.Buyer();

            billetPagSeguro.Session     = billet.Session;
            billetPagSeguro.SenderHash  = billet.SenderHash;
            billetPagSeguro.Buyer.Name  = participant.Name;
            billetPagSeguro.Buyer.CPF   = participant.CPF;
            billetPagSeguro.Buyer.DDD   = "11";
            billetPagSeguro.Buyer.Phone = "980203026";
            billetPagSeguro.Buyer.Mail  = participant.Email;

            return(billetPagSeguro);
        }
示例#2
0
        public long Redemption(PagSeguro.Model.Billet billet, Model.Transaction transaction, Order order, List <Configuration> settings)
        {
            var pagSeguroSettings = settings.Where(s => s.Key.Contains("pagSeguro")).ToList();

            Dictionary <string, string> dictionary = new Dictionary <string, string>();

            pagSeguroSettings.ForEach(s => dictionary.Add(s.Key, s.Value));

            PagSeguro.Transaction trans = new PagSeguro.Transaction(dictionary);
            var resultTransaction       = new Domain.Model.Transaction();

            var orderCreate = this._orderRepository.Create(order);

            if (orderCreate.Id > 0)
            {
                billet.OrderId = orderCreate.Id;

                if (transaction.Value > 0)
                {
                    transaction.OrderId = orderCreate.Id;

                    transaction.Description = string.Format(transaction.Description, orderCreate.Id);

                    resultTransaction = this._transactionRepository.CreateTransaction(transaction);
                    //Order Debited
                    this._orderRepository.CreateOrderHistory(new OrderHistory()
                    {
                        OrderId = orderCreate.Id, OrderStatusId = 9
                    });
                }

                var pagSeguro = trans.BilletCheckout(billet);

                if (pagSeguro.Success)
                {
                    Domain.Model.Billet billetCreate = new Model.Billet();

                    billetCreate.OrderId    = orderCreate.Id;
                    billetCreate.SenderHash = billet.SenderHash;

                    billetCreate.Session = billet.Session;

                    billetCreate.Value = order.Money;
                    billetCreate.Name  = billet.Buyer.Name;
                    billetCreate.CPF   = billet.Buyer.CPF;
                    billetCreate.Email = billet.Buyer.Mail;


                    billetCreate.Street     = billet.ShippingAddress.Street;
                    billetCreate.Number     = billet.ShippingAddress.Number;
                    billetCreate.Complement = billet.ShippingAddress.Complement;
                    billetCreate.ZipCode    = billet.ShippingAddress.ZipCode;
                    billetCreate.District   = billet.ShippingAddress.District;
                    billetCreate.City       = billet.ShippingAddress.City;
                    billetCreate.State      = billet.ShippingAddress.State;

                    billetCreate.FeeAmount   = Convert.ToSingle(pagSeguro.FeeAmount);
                    billetCreate.NetAmount   = Convert.ToSingle(pagSeguro.NetAmount);
                    billetCreate.Code        = pagSeguro.Code;
                    billetCreate.PaymentLink = pagSeguro.PaymentLink;

                    this._orderRepository.CreateBilletByOrderId(billetCreate);

                    int type = Enum.Parse(typeof(Domain.Model.Enum.OrderStatus), pagSeguro.TransactionStatus).GetHashCode();

                    //Order Debited
                    this._orderRepository.CreateOrderHistory(new OrderHistory()
                    {
                        OrderId = orderCreate.Id, OrderStatusId = type
                    });

                    this._orderRepository.UpdateOrderDeliveryAddressByCartId(order.CartId, orderCreate.Id);

                    this._cartRepository.UpdateStatusByCartId(order.CartId, 1);
                }

                return(orderCreate.Id);
            }

            return(0);
        }