public Dtos.Payment.PaymentDto.Raven.FastDepositResponse DepositByRaven([FromBody] Dtos.Payment.PaymentDto.Raven.DepositReuest request)
        {
            Log.Info("Depositing by Raven");

            var validationResult =
                new PaymentValidator(_paymentApiProxy, CultureCode, _userContext.UserId, PaymentMethod.Raven)
                .ValidateDeposit(request);

            if (validationResult.HasValue)
            {
                return(new Dtos.Payment.PaymentDto.Raven.FastDepositResponse {
                    Code = validationResult.Value
                });
            }

            try
            {
                var deposit = new PaymentDto.Raven.Deposit
                {
                    CardHolderName = request.CardHolderName,
                    Amount         = request.Amount,
                    CardType       = request.CardType,
                    CardNumber     = request.CardNumber,
                    Cvv            = request.Cvv,
                    ExpiryMonth    = request.ExpiryMonth,
                    ExpiryYear     = request.ExpiryYear,
                    CasinoUrl      = request.CasinoUrl,
                    DepositUrl     = request.DepositUrl,
                    CallBackUrl    = request.CallbackUrl,
                    BonusCode      = string.IsNullOrEmpty(request.BonusCode) ? string.Empty : request.BonusCode.Trim(),
                    ProductId      = ProductMapping.Mappings[request.Product],
                    SendTerms      = request.SendTerms,
                    IPAddress      = _networkUtility.GetClientIPAddress(),
                    Platform       = string.IsNullOrEmpty(request.Platform) ? string.Empty : request.Platform
                };

                var depositResult = _paymentApiProxy.DepositByRaven(CultureCode, _userContext.UserId, deposit);

                return(new Dtos.Payment.PaymentDto.Raven.FastDepositResponse
                {
                    Code = ResponseCode.Pending3DSecure,
                    PaymentAuthenticationRequest = depositResult.PaymentAuthenticationRequest,
                    VerificationUrl = depositResult.VerificationUrl,
                    TransactionId = depositResult.TransactionId
                });
            }
            catch (DepositNotCompletedException ex)
            {
                Log.Error("Failed to deposit by Raven", ex);
                return(new Dtos.Payment.PaymentDto.Raven.FastDepositResponse
                {
                    Code = ResponseCode.DepositNotCompleted,
                    ErrorMessage = ex.Message
                });
            }
        }
Ejemplo n.º 2
0
        public Dtos.Payment.PaymentDto.Skrill.DepositResponse GetSkrillDepositUrl([FromUri] Dtos.Payment.PaymentDto.Skrill.DepositRequest request)
        {
            Log.Info("Depositing by Skrill");

            var validationResult =
                new PaymentValidator(_paymentApiProxy, CultureCode, _userContext.UserId, PaymentMethod.Skrill)
                .ValidateDeposit(request);

            if (validationResult.HasValue)
            {
                return(new Dtos.Payment.PaymentDto.Skrill.DepositResponse {
                    Code = validationResult.Value
                });
            }

            var deposit = new PaymentDto.Skrill.Deposit
            {
                ProductId       = ProductMapping.Mappings[request.Product],
                Amount          = request.Amount,
                BonusCode       = string.IsNullOrEmpty(request.BonusCode) ? string.Empty : request.BonusCode.Trim(),
                ReturnUrlPrefix = request.ReturnUrlPrefix,
                SendTerms       = request.SendTerms,
                IPAddress       = _networkUtility.GetClientIPAddress(),
                Platform        = string.IsNullOrEmpty(request.Platform) ? string.Empty : request.Platform
            };

            try
            {
                var resp = _paymentApiProxy.GetSkrillDepositUrl(CultureCode, _userContext.UserId, deposit);

                return(new Dtos.Payment.PaymentDto.Skrill.DepositResponse
                {
                    Code = ResponseCode.Success,
                    Url = resp.Uri,
                    BonusResult = resp.BonusResult == null
                        ? null
                        : new Dtos.Payment.PaymentDto.Skrill.DepositResponse.FundInResult
                    {
                        ErrorCode = resp.BonusResult.ErrorCode,
                        ErrorDetails = resp.BonusResult.ErrorDetails,
                        TransactionCode = resp.BonusResult.TransactionCode,
                        TransferResults = resp.BonusResult.TransferResults
                    }
                });
            }
            catch (DepositNotCompletedException ex)
            {
                Log.Error("Failed to get Skrill url", ex);

                return(new Dtos.Payment.PaymentDto.Skrill.DepositResponse
                {
                    Code = ResponseCode.DepositNotCompleted,
                    ErrorMessage = ex.Message
                });
            }
        }
Ejemplo n.º 3
0
        public Dtos.Payment.PaymentDto.Ukash.WithdrawalResponse WithdrawByUkash(
            [FromBody] Dtos.Payment.PaymentDto.Ukash.WithdrawalReuest request)
        {
            Log.Info("Withdrawing by Ukash");

            var validationResult =
                new PaymentValidator(_paymentApiProxy, CultureCode, _userContext.UserId, PaymentMethod.Ukash)
                .ValidateWithdraw(request);

            if (validationResult.HasValue)
            {
                return(new Dtos.Payment.PaymentDto.Ukash.WithdrawalResponse {
                    Code = validationResult.Value
                });
            }

            try
            {
                var payload = new PaymentDto.Ukash.Withdrawal
                {
                    Amount    = request.Amount,
                    IPAddress = _networkUtility.GetClientIPAddress(),
                };

                var ukashRes = _paymentApiProxy.WithdrawByUkash(CultureCode, _userContext.UserId, payload);

                return(new Dtos.Payment.PaymentDto.Ukash.WithdrawalResponse
                {
                    Code = ResponseCode.Success,
                    TrackingNumber = ukashRes.TrackingNumber,
                    UkashWithdrawReturn =
                        ukashRes.UkashWithdrawReturn == null
                            ? null
                            : new Dtos.Payment.PaymentDto.Ukash.WithdrawalResponse.UkashWithdrawTransferResult
                    {
                        IssueVoucherCurrency = ukashRes.UkashWithdrawReturn.IssueVoucherCurrency,
                        IssueVoucherExpiryDate = ukashRes.UkashWithdrawReturn.IssueVoucherExpiryDate,
                        IssueVoucherNumber = ukashRes.UkashWithdrawReturn.IssueVoucherNumber,
                        IssueVoucherValue = ukashRes.UkashWithdrawReturn.IssueVoucherValue,
                        TrackingNumber = ukashRes.UkashWithdrawReturn.TrackingNumber,
                        TransferResult = ukashRes.UkashWithdrawReturn.TransferResult,
                        ErrorCode = ukashRes.UkashWithdrawReturn.ErrorCode
                    }
                });
            }
            catch (WithdrawalNotCompletedException ex)
            {
                Log.Error("Failed to withdraw by Ukash", ex);
                return(new Dtos.Payment.PaymentDto.Ukash.WithdrawalResponse
                {
                    Code = ResponseCode.WithdrawalNotCompleted,
                    ErrorMessage = ex.Message
                });
            }
        }
        public ApiResponse WithdrawByRaven([FromBody] Dtos.Payment.PaymentDto.Raven.WithdrawalRequest request)
        {
            Log.Info("Withdrawing by Raven");

            var validationResult =
                new PaymentValidator(_paymentApiProxy, CultureCode, _userContext.UserId, PaymentMethod.Raven)
                .ValidateWithdraw(request);

            if (validationResult.HasValue)
            {
                return(new ApiResponse {
                    Code = validationResult.Value
                });
            }

            try
            {
                var payload = new PaymentDto.Raven.Withdrawal
                {
                    CardNumber  = request.CardNumber,
                    Cvv         = request.Cvv,
                    ExpiryYear  = request.ExpiryYear,
                    ExpiryMonth = request.ExpiryMonth,
                    Amount      = request.Amount,
                    IPAddress   = _networkUtility.GetClientIPAddress(),
                };

                _paymentApiProxy.WithdrawByRaven(CultureCode, _userContext.UserId, payload);

                return(new ApiResponse
                {
                    Code = ResponseCode.Success
                });
            }
            catch (WithdrawalNotCompletedException ex)
            {
                Log.Error("Failed to withdraw by Raven", ex);

                return(new Dtos.Payment.PaymentDto.Raven.WithdrawalResponse
                {
                    Code = ResponseCode.WithdrawalNotCompleted,
                    ErrorMessage = ex.Message
                });
            }
        }
        public ApiResponse WithdrawByWorldPay([FromBody] Dtos.Payment.PaymentDto.WorldPay.WithdrawalRequest request)
        {
            Log.Info("Withdrawing by WorldPay");

            var validationResult =
                new PaymentValidator(_paymentApiProxy, CultureCode, _userContext.UserId, PaymentMethod.WorldPay)
                .ValidateWithdraw(request);

            if (validationResult.HasValue)
            {
                return(new ApiResponse {
                    Code = validationResult.Value
                });
            }

            try
            {
                _paymentApiProxy.WithdrawByWorldPay(CultureCode, _userContext.UserId, new PaymentDto.WorldPay.Withdrawal
                {
                    AccountName         = request.CardHolderName,
                    CardType            = request.CardType,
                    Amount              = request.Amount,
                    Cvv                 = request.Cvv,
                    EncryptedCardNumber = request.EncryptedCardNumber,
                    ExpiryMonth         = request.ExpiryMonth,
                    ExpiryYear          = request.ExpiryYear,
                    IPAddress           = _networkUtility.GetClientIPAddress(),
                });

                return(new ApiResponse {
                    Code = ResponseCode.Success
                });
            }
            catch (WithdrawalNotCompletedException ex)
            {
                Log.Error("Failed to withdraw by WorldPay", ex);
                return(new ApiResponse {
                    Code = ResponseCode.WithdrawalNotCompleted, ErrorMessage = ex.Message
                });
            }
        }
Ejemplo n.º 6
0
        public ApiResponse WithdrawByNeteller([FromBody] Dtos.Payment.PaymentDto.Neteller.WithdrawalRequest request)
        {
            Log.Info("Withdrawing by Neteller");

            var validationResult =
                new PaymentValidator(_paymentApiProxy, CultureCode, _userContext.UserId, PaymentMethod.Neteller)
                .ValidateWithdraw(request);

            if (validationResult.HasValue)
            {
                return(new ApiResponse {
                    Code = validationResult.Value
                });
            }

            try
            {
                _paymentApiProxy.WithdrawByNeteller(CultureCode, _userContext.UserId, new PaymentDto.Neteller.Withdrawal
                {
                    AccountId = request.AccountId,
                    Amount    = request.Amount,
                    IPAddress = _networkUtility.GetClientIPAddress()
                });

                return(new ApiResponse
                {
                    Code = ResponseCode.Success
                });
            }
            catch (WithdrawalNotCompletedException ex)
            {
                Log.Error("Failed to withdraw by Neteller", ex);
                return(new ApiResponse
                {
                    Code = ResponseCode.WithdrawalNotCompleted,
                    ErrorMessage = ex.Message
                });
            }
        }
        public Dtos.Payment.PaymentDto.WorldPay.DepositResponse DepositUsingWorldPayFastPayCard([FromBody] Dtos.Payment.PaymentDto.WorldPay.FastPayRequest request)
        {
            Log.Info("Depositing by WorldPay FastPay");

            var validationResult =
                new PaymentValidator(_paymentApiProxy, CultureCode, _userContext.UserId, PaymentMethod.WorldPay)
                .ValidateDeposit(request);

            if (validationResult.HasValue)
            {
                return(new Dtos.Payment.PaymentDto.WorldPay.DepositResponse {
                    Code = validationResult.Value
                });
            }

            try
            {
                Log.Info("Deposit Using WorldPay Fast pay card.");

                var deposit = _paymentApiProxy.DepositByWorldPayFastPay(CultureCode, new PaymentDto.WorldPay.FastPay
                {
                    PlayerId           = request.PlayerId,
                    Amount             = request.Amount,
                    BonusCode          = string.IsNullOrEmpty(request.BonusCode) ? string.Empty : request.BonusCode.Trim(),
                    GameId             = ProductMapping.Mappings[request.Product],
                    Cvv                = request.Cvv,
                    NeedSendBonusTerms = request.SendTerms,
                    IPAddress          = _networkUtility.GetClientIPAddress(),
                    DepositUrl         = request.DepositUrl,
                    CasinoUrl          = request.CasinoUrl,
                    CallBackUrl        = request.CallBackUrl,
                    IsMobile           = request.IsMobile,
                    Platform           = string.IsNullOrEmpty(request.Platform) ? string.Empty : request.Platform
                });

                return(deposit.Pending3DSecure
                    ? new Dtos.Payment.PaymentDto.WorldPay.DepositResponse
                {
                    Code = ResponseCode.Pending3DSecure,
                    PaymentAuthenticationRequest = deposit.PaymentAuthenticationRequest,
                    TransactionId = deposit.TransactionId,
                    VerificationUrl = deposit.VerificationUrl,
                }
                    : new Dtos.Payment.PaymentDto.WorldPay.DepositResponse
                {
                    Code = ResponseCode.Success,
                    Payment = new PaymentModel
                    {
                        ReferenceNumber = deposit.TrackingNumber,
                        Amount = deposit.DepositAmount,
                        Balance = deposit.CurrentBalance,
                        BonusResult = deposit.BonusResult == null
                                ? null
                                : new PaymentModel.BonusResultModel
                        {
                            ErrorCode = deposit.BonusResult.ErrorCode,
                            ErrorDetails = deposit.BonusResult.ErrorDetails,
                            TransactionCode = deposit.BonusResult.TransactionCode,
                            TransferResults = deposit.BonusResult.TransferResults
                        },
                    }
                });
            }
            catch (FastPayNotCompletedException ex)
            {
                Log.Error("Failed to Deposit world pay using fast pay card info", ex);

                return(new Dtos.Payment.PaymentDto.WorldPay.DepositResponse
                {
                    Code = ResponseCode.WorldPayDepositFastPayCardError,
                    ErrorMessage = ex.Message
                });
            }
        }
        public Dtos.Payment.PaymentDto.WorldPay.DepositResponse DepositByWorldPay([FromBody] Dtos.Payment.PaymentDto.WorldPay.DepositRequest request)
        {
            Log.Info("Depositing by WorldPay");

            var validationResult =
                new PaymentValidator(_paymentApiProxy, CultureCode, _userContext.UserId, PaymentMethod.WorldPay)
                .ValidateDeposit(request);

            if (validationResult.HasValue)
            {
                return(new Dtos.Payment.PaymentDto.WorldPay.DepositResponse {
                    Code = validationResult.Value
                });
            }

            try
            {
                var deposit = _paymentApiProxy.DepositByWorldPay(CultureCode, _userContext.UserId,
                                                                 new PaymentDto.WorldPay.Deposit
                {
                    CardHolderName = request.CardHolderName,
                    CardType       = request.CardType.ToString(),
                    CardNumber     = request.CardNumber,
                    Amount         = request.Amount,
                    ExpireYear     = request.ExpiryYear,
                    ExpireMonth    = request.ExpiryMonth,
                    Cvv            = request.Cvv,
                    BonusCode      = string.IsNullOrEmpty(request.BonusCode) ? string.Empty : request.BonusCode.Trim(),
                    ProductId      = ProductMapping.Mappings[request.Product],
                    SendTerms      = request.EmailTerms,
                    DepositUrl     = request.DepositUrl,
                    CasinoUrl      = request.CasinoUrl,
                    CallbackUrl    = request.CallbackUrl,
                    IPAddress      = _networkUtility.GetClientIPAddress(),
                    isMobile       = request.isMobile
                });

                return(deposit.Pending3DSecure
                    ? new Dtos.Payment.PaymentDto.WorldPay.DepositResponse
                {
                    Code = ResponseCode.Pending3DSecure,
                    PaymentAuthenticationRequest = deposit.PaymentAuthenticationRequest,
                    TransactionId = deposit.TransactionId,
                    VerificationUrl = deposit.VerificationUrl,
                }
                    : new Dtos.Payment.PaymentDto.WorldPay.DepositResponse
                {
                    Code = ResponseCode.Success,
                    Payment = new PaymentModel
                    {
                        ReferenceNumber = deposit.TrackingNumber,
                        Amount = deposit.DepositAmount,
                        Balance = deposit.CurrentBalance,
                        BonusResult = deposit.BonusResult == null
                                ? null
                                : new PaymentModel.BonusResultModel
                        {
                            ErrorCode = deposit.BonusResult.ErrorCode,
                            ErrorDetails = deposit.BonusResult.ErrorDetails,
                            TransactionCode = deposit.BonusResult.TransactionCode,
                            TransferResults = deposit.BonusResult.TransferResults
                        },
                    }
                });
            }
            catch (DepositNotCompletedException ex)
            {
                Log.Error("Failed to deposit by WorldPay", ex);

                return(new Dtos.Payment.PaymentDto.WorldPay.DepositResponse
                {
                    Code = ResponseCode.DepositNotCompleted,
                    ErrorMessage = ex.Message
                });
            }
        }
Ejemplo n.º 9
0
        public Dtos.Payment.PaymentDto.Neteller.DepositResponse DepositByNeteller([FromBody] Dtos.Payment.PaymentDto.Neteller.DepositRequest request)
        {
            Log.Info("Depositing by Neteller");

            var validationResult =
                new PaymentValidator(_paymentApiProxy, CultureCode, _userContext.UserId, PaymentMethod.Neteller)
                .ValidateDeposit(request);

            if (validationResult.HasValue)
            {
                return(new Dtos.Payment.PaymentDto.Neteller.DepositResponse {
                    Code = validationResult.Value
                });
            }

            try
            {
                var result = _paymentApiProxy.DepositByNeteller(CultureCode, _userContext.UserId,
                                                                new PaymentDto.Neteller.Deposit
                {
                    ProductId  = ProductMapping.Mappings[request.Product],
                    Amount     = request.Amount,
                    BonusCode  = string.IsNullOrEmpty(request.BonusCode) ? string.Empty : request.BonusCode.Trim(),
                    DepositUrl = request.DepositUrl,
                    CasinoUrl  = request.CasinoUrl,
                    SendTerms  = request.SendTerms,
                    IPAddress  = _networkUtility.GetClientIPAddress(),
                    SecureId   = request.SecureId,
                    AccountId  = request.AccountId,
                    Platform   = string.IsNullOrEmpty(request.Platform) ? string.Empty : request.Platform
                });

                return(new Dtos.Payment.PaymentDto.Neteller.DepositResponse
                {
                    Code = ResponseCode.Success,
                    Payment = new PaymentModel
                    {
                        ReferenceNumber = result.TransactionId,
                        Amount = result.DepositAmount,
                        Balance = result.CurrentBalance,
                        BonusResult = result.BonusResult == null
                            ? null
                                : new PaymentModel.BonusResultModel
                        {
                            ErrorCode = result.BonusResult.ErrorCode,
                            ErrorDetails = result.BonusResult.ErrorDetails,
                            TransactionCode = result.BonusResult.TransactionCode,
                            TransferResults = result.BonusResult.TransferResults
                        }
                    }
                });
            }
            catch (DepositNotCompletedException ex)
            {
                Log.Error("Failed to deposit by Neteller", ex);
                return(new Dtos.Payment.PaymentDto.Neteller.DepositResponse
                {
                    Code = ResponseCode.DepositNotCompleted,
                    ErrorMessage = ex.Message
                });
            }
        }
Ejemplo n.º 10
0
        public Dtos.Payment.PaymentDto.Ukash.DepositResponse DepositByUkash(
            [FromBody] Dtos.Payment.PaymentDto.Ukash.DepositReuest request)
        {
            Log.Info("Depositing by Ukash");

            var validationResult =
                new PaymentValidator(_paymentApiProxy, CultureCode, _userContext.UserId, PaymentMethod.Ukash)
                .ValidateDeposit(request);

            if (validationResult.HasValue)
            {
                return(new Dtos.Payment.PaymentDto.Ukash.DepositResponse {
                    Code = validationResult.Value
                });
            }

            var payload = new PaymentDto.Ukash.Deposit
            {
                ProductId     = ProductMapping.Mappings[request.Product],
                Amount        = request.Amount,
                BonusCode     = string.IsNullOrEmpty(request.BonusCode) ? string.Empty : request.BonusCode.Trim(),
                CasinoUrl     = request.CasinoUrl,
                DepositUrl    = request.DepositUrl,
                IPAddress     = _networkUtility.GetClientIPAddress(),
                VoucherNumber = request.VoucherNumber,
                VoucherValue  = request.VoucherValue,
                SendTerms     = request.SendTerms
            };

            try
            {
                var result = _paymentApiProxy.DepositByUkash(CultureCode, _userContext.UserId, payload);

                return(new Dtos.Payment.PaymentDto.Ukash.DepositResponse
                {
                    Code = ResponseCode.Success,
                    Payment = new PaymentModel
                    {
                        ReferenceNumber = result.UkashDepositReturn.TrackingNumber,
                        Amount = result.UkashDepositReturn.Amount,
                        Balance = result.UkashDepositReturn.CurrentAmount
                    },
                    DepositResult = new Dtos.Payment.PaymentDto.Ukash.DepositResponse.UkashDepositReturn
                    {
                        Amount = result.UkashDepositReturn.Amount,
                        ChangeVoucherCurrency = result.UkashDepositReturn.ChangeVoucherCurrency,
                        ChangeVoucherExpiryDate = result.UkashDepositReturn.ChangeVoucherExpiryDate,
                        ChangeVoucherNumber = result.UkashDepositReturn.ChangeVoucherNumber,
                        ChangeVoucherValue = result.UkashDepositReturn.ChangeVoucherValue,
                        CurrentAmount = result.UkashDepositReturn.CurrentAmount,
                        ErrorCode = result.UkashDepositReturn.ErrorCode,
                        TrackingNumber = result.UkashDepositReturn.TrackingNumber,
                        TransactionCurrency = result.UkashDepositReturn.TransactionCurrency,
                        TransactionId = result.UkashDepositReturn.TransactionId,
                        TransferResult = result.UkashDepositReturn.TransferResult,
                        TransactionStatusReturn = result.UkashDepositReturn.TransactionStatusReturn
                    }
                });
            }
            catch (DepositNotCompletedException ex)
            {
                Log.Error("Failed to deposit by Ukash", ex);
                return(new Dtos.Payment.PaymentDto.Ukash.DepositResponse
                {
                    Code = ResponseCode.DepositNotCompleted,
                    ErrorMessage = ex.Message
                });
            }
        }