コード例 #1
0
        public MakePaymentResultSM MakeMarketplaceTransaction(MarketPayment sm)
        {
            var result = new MakePaymentResultSM();

            Customer cust = FindCustomer(sm.ParentId.ToString());
            if (cust == null)
            {
                result.IsSuccess = false;
                result.Error = "Customer not found " + sm.ParentId;
                return result;
            }
            if (cust.DefaultPaymentMethod == null || cust.DefaultPaymentMethod.Token == null)
            {
                result.IsSuccess = false;
                result.Error = "Customer default payment method not found ";
                return result;
            }

            var sitter = FindMerchant(sm.SitterId);
            if (sitter == null)
            {
                result.IsSuccess = false;
                result.Error = "Sitter not found " + sm.SitterId;
                return result;
            }
            if (!sitter.IsSubMerchant)
                throw new Exception("sitter is not submerchant");

            var request = new TransactionRequest
            {
                CustomerId = sm.ParentId.ToString(),
                PaymentMethodToken = cust.DefaultPaymentMethod.Token,
                MerchantAccountId = sitter.Id,
                Amount = sm.Amount,
                ServiceFeeAmount = sm.MySitterHubFee,
                Channel = LogicConstants.braintreeChannel,
            };

            Result<Transaction> saleResult = _gateway.Transaction.Sale(request);

            if (saleResult.IsSuccess())
            {
                result.IsSuccess = true;
            }
            else
            {
                if (saleResult.Errors != null && saleResult.Errors.All().Count > 0)
                {
                    result.Error = string.Join("~~", saleResult.Errors.All().Select(m => m.Message));
                }
            }

            return result;
        }
コード例 #2
0
        public MakePaymentResultSM MakeSimplePayment(SimplePayment sm)
        {
            var result = new MakePaymentResultSM();

            Customer cust = FindCustomer(sm.ParentId.ToString());
            if (cust == null)
            {
                result.IsSuccess = false;
                result.Error = "Customer not found " + sm.ParentId;
                return result;
            }
            if (cust.DefaultPaymentMethod == null || cust.DefaultPaymentMethod.Token == null)
            {
                result.IsSuccess = false;
                result.Error = "Customer default payment method not found ";
                return result;
            }

            var request = new TransactionRequest
            {
                Amount = sm.Amount,
                PaymentMethodToken = cust.DefaultPaymentMethod.Token,
                CustomerId = sm.ParentId.ToString(),
                Channel = LogicConstants.braintreeChannel,
            };

            Result<Transaction> saleResult = _gateway.Transaction.Sale(request);

            if (saleResult.IsSuccess())
            {
                result.IsSuccess = true;
            }
            else
            {
                if (saleResult.Errors != null && saleResult.Errors.All().Count > 0)
                {
                    result.Error = string.Join("~~", saleResult.Errors.All().Select(m => m.Message));
                }
            }

            return result;
        }