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; }
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; }