Ejemplo n.º 1
0
        /// <summary>
        /// Update BrainTree Payment
        /// </summary>
        /// <param name="_userLoginVM"></param>
        /// <returns></returns>
        public UserPremiumVM UpdateBrainTreePayment(UserPremiumVM _userPremiumVM)
        {
            UserPremium _userPremium = new UserPremium
            {
                UserID               = _userPremiumVM.UserID,
                BusinessID           = _userPremiumVM.BusinessID,
                Amount               = _userPremiumVM.Amount,
                PaymentMode          = _userPremiumVM.PaymentMode,
                TransactionID        = _userPremiumVM.TransactionID,
                PaymentDate          = DateTime.Now,
                IsActive             = true,
                BrainTreeClientToken = _userPremiumVM.ClientToken,
                BrainTreeCustomerID  = _userPremiumVM.CustomerID
            };

            _userPremium = _objUserDAL.UpdateBrainTreePayment(_userPremium);
            if (_userPremium != null)
            {
                return(_userPremiumVM);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 2
0
        public HttpResponseMessage BraintreeMakePayment(UserPremiumVM _userPremiumVM)
        {
            if (Common.IsTokenAuthenticated(Request.Headers, ref _userId, ref _strJSONContent))
            {
                var     gateway = config.GetGateway();
                Decimal amount;

                try
                {
                    amount = Convert.ToDecimal(_userPremiumVM.Amount);

                    var nonce   = _userPremiumVM.PaymentNonce;
                    var request = new TransactionRequest
                    {
                        Amount             = amount,
                        CustomerId         = _userPremiumVM.CustomerID,
                        PaymentMethodNonce = nonce,
                        Options            = new TransactionOptionsRequest
                        {
                            SubmitForSettlement = true
                        }
                    };

                    Result <Transaction> result = gateway.Transaction.Sale(request);
                    if (result.IsSuccess())
                    {
                        Transaction transaction = result.Target;
                        _strJSONContent.Append("{\"status\":\"Success\",");
                        _strJSONContent.Append("\"TransactionID\":\"" + transaction.Id + "\"}");

                        _userPremiumVM.TransactionID = transaction.Id;
                        _userPremiumVM.PaymentMode   = "Monthly";

                        _userPremiumVM = _userBLL.UpdateBrainTreePayment(_userPremiumVM);
                    }
                    else
                    {
                        string errorMessages = "";
                        foreach (ValidationError error in result.Errors.DeepAll())
                        {
                            errorMessages += "Error: " + (int)error.Code + " - " + error.Message + "\n";
                        }
                        _strJSONContent.Append("{\"status\":\"Failed\",");
                        _strJSONContent.Append("\"Error\":\"" + errorMessages + "\"}");
                    }
                }
                catch (FormatException e)
                {
                    _strJSONContent.Append("{\"status\":\"Amount is an invalid format.\"}");
                    _strJSONContent.Append("{\"status\":\"Amount is an invalid format.\"}");
                }
            }
            return(Common.ResponseOutput(_strJSONContent));
        }