Esempio n. 1
0
        public CommitResponse AddOrder(OrderRequest orderRequest)
        {
            try
            {
                if (IsMeteleUsaMerchant(orderRequest.MerchantId))//Test purposes
                    return new CommitResponse
                    {
                        Status = 201,
                        ErrorMessage = "You cannot add orders from this source!"
                    };

                var validationResult = ValidateOrder(orderRequest);

                if (validationResult.Status != 200)
                    return validationResult;

                var paxTerminalRequest = MapOrderToPaxTerminalRequest(orderRequest);

                if (paxTerminalRequest == null)
                {
                    return new CommitResponse
                    {
                        ErrorMessage = "The Order has some invalid arguments",
                        Status = 201,
                    };
                }

                var response = _blackstonePosService.AddOrderForPaxTerminal(paxTerminalRequest);

                return new CommitResponse
                {
                    ErrorMessage = response.ErrorMessage,
                    Status = response.Status,
                    Ticket = response.Data.ToString() //It should bring back the Order Number
                };

            }
            catch (Exception exception)
            {
                var errorMessage = exception.Message;

                if (exception is CustomException)
                {
                    var customException = exception as CustomException;

                    _logger.Debug(string.Format("Operation:AddOrder,Error Message:{3}, Parameters:MerchantId:{0}," +
                                                "TerminalId:{1},SerialNumber:{2}", customException.MerchantId, customException.TerminalId,
                                                 customException.SerialNumber, customException.Message));
                    errorMessage = customException.Message;
                }
                return new CommitResponse
                {
                    ErrorMessage = "Errors trying to Add new Order. " + errorMessage,
                    Status = 201,
                };
            }
        }
Esempio n. 2
0
        private void ValidateRequestKey(OrderRequest orderRequest)
        {
            var requestKeyAssertion = Infrastructure.Utils.Md5Hash(orderRequest.MerchantId.ToString() + orderRequest.TerminalId.ToString() + orderRequest.OrderDate);

            if(!orderRequest.RequestKey.Equals(requestKeyAssertion))
                throw new InvalidSerialException(orderRequest.MerchantId.ToString(),orderRequest.TerminalId.ToString(), orderRequest.SerialNumber);
        }
Esempio n. 3
0
        private CommitResponse ValidateOrder(OrderRequest orderRequest)
        {
            try
            {
                //Checking credentials
                ValidateCredentials(orderRequest);

                var errorMessage = _blackstonePosService.ValidatePosAddOrderRequest(orderRequest);

                return new CommitResponse
                {
                    ErrorMessage = string.IsNullOrEmpty(errorMessage) ? string.Empty : "The Order has some invalid arguments. " + errorMessage,
                    Status = string.IsNullOrEmpty(errorMessage) ? 200: 201,
                };

            }
            catch (Exception exception)
            {
                return new CommitResponse
                {
                    ErrorMessage = exception.Message,
                    Status = 201
                };
            }
        }
Esempio n. 4
0
 private void ValidateCredentials(OrderRequest orderRequest)
 {
     switch (orderRequest.SystemType)
     {
         case SystemType.Pax:
         {
             _blackstonePosService.CheckCredentials(orderRequest.MerchantId, orderRequest.TerminalId, orderRequest.SerialNumber);
             break;
         }
             case  SystemType.Tnb:
         {
             ValidateRequestKey(orderRequest);
             break;
         }
         //Pending for Joel to send the System Type
         default:
         {
             _blackstonePosService.CheckCredentials(orderRequest.MerchantId, orderRequest.TerminalId, orderRequest.SerialNumber);
             break;
         }
     }
 }
Esempio n. 5
0
        private PaxTerminalTransactionRequest MapOrderToPaxTerminalRequest(OrderRequest request)
        {
            try
            {
                var paxTerminalTransactionResult = new PaxTerminalTransactionRequest
                {
                    AccountNumber = request.AccountNumber,
                    AddInfo1 = request.AddInfo1,
                    AddInfo2 = request.AddInfo2,
                    AltAccountNumber = request.AltAccountNumber,
                    CashierId = request.MerchantId.ToString(),
                    Country = request.CountryCode,
                    CustomerName = request.CustomerName,
                    Fee = request.Fee,
                    LicensePlate = request.LicensePlate,
                    OrderDate = request.OrderDate!= null? DateTime.Parse(request.OrderDate): DateTime.Now,
                    PaymentKeyWord = request.PaymentKeyWord,
                    PhoneNumber = request.PhoneNumber,
                    ProductId = request.ProductMainCode,
                    SenderName = request.SenderName,
                    PurchaseId = request.PurchaseId,
                    SerialNumber = request.SerialNumber,
                    TerminalId = request.TerminalId.ToString(),
                    TotalAmount = request.Amount.ToString(),
                    VendorId = request.VendorId
                };

                return paxTerminalTransactionResult;
            }
            catch (Exception exception)
            {
                return null;
            }
        }
Esempio n. 6
0
        public CommitResponse AddOrderTest()
        {
            var newOrderRequest = new OrderRequest
            {
                ProductMainCode = "300595",
                Amount = 2,
                Fee = 0,
                OrderDate = "7/16/2015 3:19:10 PM",
                SerialNumber = "01234567890ABCDEF",
                MerchantId = 834,
                TerminalId = 10000642
            };

            var result =  AddOrder(newOrderRequest);

            return result;
        }