/// <summary> /// Performs a Braintree Transaction using a vaulted credit card. /// </summary> /// <param name="invoice"> /// The invoice. /// </param> /// <param name="paymentMethodToken"> /// The payment method token. /// </param> /// <param name="customer"> /// The customer. /// </param> /// <param name="option"> /// The option. /// </param> /// <returns> /// The <see cref="Result{Transaction}"/>. /// </returns> public Result<Transaction> VaultSale( IInvoice invoice, string paymentMethodToken, TransactionOption option = TransactionOption.SubmitForSettlement) { var request = this.RequestFactory.CreateVaultTransactionRequest(invoice, paymentMethodToken, option); LogHelper.Info<BraintreeTransactionApiService>(string.Format("Braintree Vault Transaction attempt ({0}) for Invoice {1}", option.ToString(), invoice.PrefixedInvoiceNumber())); var attempt = this.TryGetApiResult(() => this.BraintreeGateway.Transaction.Sale(request)); return attempt.Success ? attempt.Result : null; }
/// <summary> /// Performs a Braintree sales transaction. /// </summary> /// <param name="invoice"> /// The invoice. /// </param> /// <param name="paymentMethodNonce"> /// The payment method nonce. /// </param> /// <param name="customer"> /// The customer. /// </param> /// <param name="billingAddress"> /// The billing address. /// </param> /// <param name="shippingAddress"> /// The shipping address. /// </param> /// <param name="option"> /// The option. /// </param> /// <returns> /// The <see cref="IPaymentResult"/>. /// </returns> public Result<Transaction> Sale(IInvoice invoice, string paymentMethodNonce, ICustomer customer, IAddress billingAddress, IAddress shippingAddress, TransactionOption option = TransactionOption.SubmitForSettlement) { var request = this.RequestFactory.CreateTransactionRequest(invoice, paymentMethodNonce, customer, option); if (billingAddress != null) request.BillingAddress = this.RequestFactory.CreateAddressRequest(billingAddress); if (shippingAddress != null) request.ShippingAddress = this.RequestFactory.CreateAddressRequest(shippingAddress); LogHelper.Info<BraintreeTransactionApiService>(string.Format("Braintree Transaction attempt ({0}) for Invoice {1}", option.ToString(), invoice.PrefixedInvoiceNumber())); var attempt = this.TryGetApiResult(() => this.BraintreeGateway.Transaction.Sale(request)); return attempt.Success ? attempt.Result : null; }
/// <summary> /// Performs a Braintree sales transaction. /// </summary> /// <param name="invoice"> /// The invoice. /// </param> /// <param name="paymentMethodNonce"> /// The payment method nonce. /// </param> /// <param name="customer"> /// The customer. /// </param> /// <param name="option"> /// The option. /// </param> /// <param name="email"> /// The email. /// </param> /// <returns> /// The <see cref="Result{Transaction}"/>. /// </returns> public Result<Transaction> Sale(IInvoice invoice, string paymentMethodNonce = "", ICustomer customer = null, TransactionOption option = TransactionOption.SubmitForSettlement, string email = "") { var request = this.RequestFactory.CreateTransactionRequest(invoice, paymentMethodNonce, customer, option); if (customer == null && !string.IsNullOrEmpty(email)) { request.Customer = new CustomerRequest() { Email = email }; } LogHelper.Info<BraintreeTransactionApiService>(string.Format("Braintree Transaction attempt ({0}) for Invoice {1}", option.ToString(), invoice.PrefixedInvoiceNumber())); var attempt = this.TryGetApiResult(() => this.BraintreeGateway.Transaction.Sale(request)); return attempt.Success ? attempt.Result : null; }
/// <summary> /// Performs a Braintree sales transaction. /// </summary> /// <param name="invoice"> /// The invoice. /// </param> /// <param name="paymentMethodNonce"> /// The payment method nonce. /// </param> /// <param name="customer"> /// The customer. /// </param> /// <param name="option"> /// The option. /// </param> /// <param name="email"> /// The email. /// </param> /// <returns> /// The <see cref="Result{Transaction}"/>. /// </returns> public Result <Transaction> Sale(IInvoice invoice, string paymentMethodNonce = "", ICustomer customer = null, TransactionOption option = TransactionOption.SubmitForSettlement, string email = "") { var request = this.RequestFactory.CreateTransactionRequest(invoice, paymentMethodNonce, customer, option); if (customer == null && !string.IsNullOrEmpty(email)) { request.Customer = new CustomerRequest() { Email = email }; } LogHelper.Info <BraintreeTransactionApiService>(string.Format("Braintree Transaction attempt ({0}) for Invoice {1}", option.ToString(), invoice.PrefixedInvoiceNumber())); var attempt = this.TryGetApiResult(() => this.BraintreeGateway.Transaction.Sale(request)); return(attempt.Success ? attempt.Result : null); }
/// <summary> /// Performs a Braintree Transaction using a vaulted credit card. /// </summary> /// <param name="invoice"> /// The invoice. /// </param> /// <param name="paymentMethodToken"> /// The payment method token. /// </param> /// <param name="customer"> /// The customer. /// </param> /// <param name="option"> /// The option. /// </param> /// <returns> /// The <see cref="Result{Transaction}"/>. /// </returns> public Result <Transaction> VaultSale( IInvoice invoice, string paymentMethodToken, TransactionOption option = TransactionOption.SubmitForSettlement) { var request = this.RequestFactory.CreateVaultTransactionRequest(invoice, paymentMethodToken, option); LogHelper.Info <BraintreeTransactionApiService>(string.Format("Braintree Vault Transaction attempt ({0}) for Invoice {1}", option.ToString(), invoice.PrefixedInvoiceNumber())); var attempt = this.TryGetApiResult(() => this.BraintreeGateway.Transaction.Sale(request)); return(attempt.Success ? attempt.Result : null); }
/// <summary> /// Performs a Braintree sales transaction. /// </summary> /// <param name="invoice"> /// The invoice. /// </param> /// <param name="paymentMethodNonce"> /// The payment method nonce. /// </param> /// <param name="customer"> /// The customer. /// </param> /// <param name="billingAddress"> /// The billing address. /// </param> /// <param name="shippingAddress"> /// The shipping address. /// </param> /// <param name="option"> /// The option. /// </param> /// <returns> /// The <see cref="IPaymentResult"/>. /// </returns> public Result <Transaction> Sale(IInvoice invoice, string paymentMethodNonce, ICustomer customer, IAddress billingAddress, IAddress shippingAddress, TransactionOption option = TransactionOption.SubmitForSettlement) { var request = this.RequestFactory.CreateTransactionRequest(invoice, paymentMethodNonce, customer, option); if (billingAddress != null) { request.BillingAddress = this.RequestFactory.CreateAddressRequest(billingAddress); } if (shippingAddress != null) { request.ShippingAddress = this.RequestFactory.CreateAddressRequest(shippingAddress); } LogHelper.Info <BraintreeTransactionApiService>(string.Format("Braintree Transaction attempt ({0}) for Invoice {1}", option.ToString(), invoice.PrefixedInvoiceNumber())); var attempt = this.TryGetApiResult(() => this.BraintreeGateway.Transaction.Sale(request)); return(attempt.Success ? attempt.Result : null); }