diff --git a/pom.xml b/pom.xml index 34f6cb7fa..d7715eca6 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ 3.1.0 0.1.0 2.0.17 - 28.4.0 + 30.2.0 2.2.36 1.21.3 diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/StripeManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/StripeManager.java index ce24f232c..243202aba 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/StripeManager.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/subscriptions/StripeManager.java @@ -371,7 +371,7 @@ public class StripeManager implements CustomerAwareSubscriptionPaymentProcessor public Object getSubscription(String subscriptionId) { SubscriptionRetrieveParams params = SubscriptionRetrieveParams.builder() .addExpand("latest_invoice") - .addExpand("latest_invoice.charge") + .addExpand("latest_invoice.payments") .build(); try { return stripeClient.subscriptions().retrieve(subscriptionId, params, commonOptions()); @@ -557,8 +557,8 @@ public class StripeManager implements CustomerAwareSubscriptionPaymentProcessor final Invoice invoice = subscription.getLatestInvoiceObject(); paymentProcessing = "open".equals(invoice.getStatus()); - if (invoice.getChargeObject() != null) { - final Charge charge = invoice.getChargeObject(); + if (invoice.getPayments().getData().getFirst() != null) { + final Charge charge = invoice.getPayments().getData().getFirst().getPayment().getChargeObject(); if (charge.getFailureCode() != null || charge.getFailureMessage() != null) { chargeFailure = createChargeFailure(charge); } @@ -574,7 +574,7 @@ public class StripeManager implements CustomerAwareSubscriptionPaymentProcessor new SubscriptionPrice(price.getCurrency().toUpperCase(Locale.ROOT), price.getUnitAmountDecimal()), level, Instant.ofEpochSecond(subscription.getBillingCycleAnchor()), - Instant.ofEpochSecond(subscription.getCurrentPeriodEnd()), + Instant.ofEpochSecond(subscription.getItems().getData().getFirst().getCurrentPeriodEnd()), Objects.equals(subscription.getStatus(), "active"), subscription.getCancelAtPeriodEnd(), getSubscriptionStatus(subscription.getStatus()), @@ -620,7 +620,7 @@ public class StripeManager implements CustomerAwareSubscriptionPaymentProcessor throw new SubscriptionReceiptRequestedForOpenPaymentException(); } if (!StringUtils.equalsIgnoreCase("paid", latestSubscriptionInvoice.getStatus())) { - final Charge charge = latestSubscriptionInvoice.getChargeObject(); + final Charge charge = latestSubscriptionInvoice.getPayments().getData().getFirst().getPayment().getChargeObject(); if (charge != null && (charge.getFailureCode() != null || charge.getFailureMessage() != null)) { // If the charge object has a failure reason we can present to the user, create a detailed exception throw new SubscriptionChargeFailurePaymentRequiredException(getProvider(), createChargeFailure(charge)); @@ -632,7 +632,7 @@ public class StripeManager implements CustomerAwareSubscriptionPaymentProcessor final Collection invoiceLineItems = getInvoiceLineItemsForInvoice(latestSubscriptionInvoice); Collection subscriptionLineItems = invoiceLineItems.stream() - .filter(invoiceLineItem -> Objects.equals("subscription", invoiceLineItem.getType())) + .filter(invoiceLineItem -> "subscription_item_details".equalsIgnoreCase(invoiceLineItem.getParent().getType())) .toList(); if (subscriptionLineItems.isEmpty()) { throw new IllegalStateException("latest subscription invoice has no subscription line items; subscriptionId=" @@ -657,7 +657,7 @@ public class StripeManager implements CustomerAwareSubscriptionPaymentProcessor invoice.getId()); paidAt = Instant.ofEpochSecond(subscriptionLineItem.getPeriod().getStart()); } - final Product product = getProductForPrice(subscriptionLineItem.getPrice().getId()); + final Product product = getProductForPrice(subscriptionLineItem.getPricing().getPriceDetails().getPrice()); return new ReceiptItem( subscriptionLineItem.getId(), PaymentTime.periodStart(paidAt),