1
0
mirror of https://github.com/bitwarden/server.git synced 2025-04-07 05:58:13 -05:00

changing payment method for bank account token

This commit is contained in:
Kyle Spearrin 2017-08-14 10:13:29 -04:00
parent e470301327
commit 10ff21983b

View File

@ -264,6 +264,7 @@ namespace Bit.Core.Services
var updatedSubscriber = false; var updatedSubscriber = false;
var cardService = new StripeCardService(); var cardService = new StripeCardService();
var bankSerice = new BankAccountService();
var customerService = new StripeCustomerService(); var customerService = new StripeCustomerService();
StripeCustomer customer = null; StripeCustomer customer = null;
@ -286,17 +287,35 @@ namespace Bit.Core.Services
updatedSubscriber = true; updatedSubscriber = true;
} }
else else
{
if(paymentToken.StartsWith("btok_"))
{
await bankSerice.CreateAsync(customer.Id, new BankAccountCreateOptions
{
SourceToken = paymentToken
});
}
else
{ {
await cardService.CreateAsync(customer.Id, new StripeCardCreateOptions await cardService.CreateAsync(customer.Id, new StripeCardCreateOptions
{ {
SourceToken = paymentToken SourceToken = paymentToken
}); });
}
if(!string.IsNullOrWhiteSpace(customer.DefaultSourceId)) if(!string.IsNullOrWhiteSpace(customer.DefaultSourceId))
{
var source = customer.Sources.FirstOrDefault(s => s.Id == customer.DefaultSourceId);
if(source.BankAccount != null)
{
await bankSerice.DeleteAsync(customer.Id, customer.DefaultSourceId);
}
else if(source.Card != null)
{ {
await cardService.DeleteAsync(customer.Id, customer.DefaultSourceId); await cardService.DeleteAsync(customer.Id, customer.DefaultSourceId);
} }
} }
}
return updatedSubscriber; return updatedSubscriber;
} }