public static stripe.Customer GetOrCreateCustomer(this stripe.CustomerService customerService, Core.Domain.Customers.Customer customer, IGenericAttributeService genericAttributeService, StripePaymentSettings paymentSettings) { string stripeCustomerId = genericAttributeService.GetAttribute <string>(customer, paymentSettings.GetCustomerIdKey()); stripe.Customer result = customerService.GetOrCreateCustomer(customer, stripeCustomerId, paymentSettings); if (string.IsNullOrEmpty(stripeCustomerId)) { genericAttributeService.SaveAttribute(customer, paymentSettings.GetCustomerIdKey(), result.Id); } return(result); }
public static stripe.CustomerCreateOptions CreateCustomerOptions(this Core.Domain.Customers.Customer customer, StripePaymentSettings paymentSettings) { var customerCreateOptions = new stripe.CustomerCreateOptions() { Email = customer.Email, }; customerCreateOptions.Metadata = new Dictionary <string, string>() { { paymentSettings.GetCustomerIdKey(), customer.Id.ToString() } }; return(customerCreateOptions); }