public void TestMarketplacePayment() { var payment = new MarketPayment(); payment.ParentId = _testParentId; payment.Amount = 1000.5M; payment.MySitterHubFee = Convert.ToDecimal(1000.5*.1); payment.SitterId = _testSitterId; MakePaymentResultSM ret = _paymentManager.MakeMarketplaceTransaction(payment); Assert.IsTrue(ret.IsSuccess, "error: " + ret.Error); }
public MakePaymentResultSM FinalizePayment(FinalizeJobPaymentSM finalize) { // STEP - Save Finalize Payment Job job = _jobDal.GetById(finalize.JobId); job.Duration = finalize.Duration; //job.Start = finalize.Start; //TODO: set start time. ValidateFinalize(job, finalize); job.SetFinalPayment(finalize); _jobDal.Update(job); // STEP - Call payment gateway to make payment var sm = new MarketPayment(); sm.Amount = job.FinalPayment.PaidByParent; sm.MySitterHubFee = job.FinalPayment.MySitterHubFee(); sm.ParentId = job.ParentId; sm.SitterId = job.AcceptedSitter().SitterId; MakePaymentResultSM ret = _paymentManager.MakeMarketplaceTransaction(sm); return ret; }
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; }