1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-03 00:52:49 -05:00

iap pre-purchase check

This commit is contained in:
Kyle Spearrin
2019-09-19 08:46:26 -04:00
parent 9ddfe3e947
commit e9174ba9f4
4 changed files with 47 additions and 0 deletions

View File

@ -751,6 +751,29 @@ namespace Bit.Core.Services
paymentIntentClientSecret);
}
public async Task IapCheckAsync(User user, PaymentMethodType paymentMethodType)
{
if(paymentMethodType != PaymentMethodType.AppleInApp)
{
throw new BadRequestException("Payment method not supported for in-app purchases.");
}
if(user.Premium)
{
throw new BadRequestException("Already a premium user.");
}
if(!string.IsNullOrWhiteSpace(user.GatewayCustomerId))
{
var customerService = new Stripe.CustomerService();
var customer = await customerService.GetAsync(user.GatewayCustomerId);
if(customer != null && customer.Balance != 0)
{
throw new BadRequestException("Customer balance cannot exist when using in-app purchases.");
}
}
}
public async Task UpdateLicenseAsync(User user, UserLicense license)
{
if(!_globalSettings.SelfHosted)