Expand charge object on Stripe subscription to surface charge failure information
This commit is contained in:
parent
201c76b861
commit
387e4b94b4
|
@ -568,23 +568,11 @@ public class StripeManager implements SubscriptionProcessorManager {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CompletableFuture<ReceiptItem> getReceiptItem(String subscriptionId) {
|
public CompletableFuture<ReceiptItem> getReceiptItem(String subscriptionId) {
|
||||||
return getLatestInvoiceForSubscription(subscriptionId)
|
return getSubscription(subscriptionId)
|
||||||
|
.thenApply(stripeSubscription -> getSubscription(stripeSubscription).getLatestInvoiceObject())
|
||||||
.thenCompose(invoice -> convertInvoiceToReceipt(invoice, subscriptionId));
|
.thenCompose(invoice -> convertInvoiceToReceipt(invoice, subscriptionId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompletableFuture<Invoice> getLatestInvoiceForSubscription(String subscriptionId) {
|
|
||||||
return CompletableFuture.supplyAsync(() -> {
|
|
||||||
SubscriptionRetrieveParams params = SubscriptionRetrieveParams.builder()
|
|
||||||
.addExpand("latest_invoice")
|
|
||||||
.build();
|
|
||||||
try {
|
|
||||||
return stripeClient.subscriptions().retrieve(subscriptionId, params, commonOptions()).getLatestInvoiceObject();
|
|
||||||
} catch (StripeException e) {
|
|
||||||
throw new CompletionException(e);
|
|
||||||
}
|
|
||||||
}, executor);
|
|
||||||
}
|
|
||||||
|
|
||||||
private CompletableFuture<ReceiptItem> convertInvoiceToReceipt(Invoice latestSubscriptionInvoice, String subscriptionId) {
|
private CompletableFuture<ReceiptItem> convertInvoiceToReceipt(Invoice latestSubscriptionInvoice, String subscriptionId) {
|
||||||
if (latestSubscriptionInvoice == null) {
|
if (latestSubscriptionInvoice == null) {
|
||||||
throw new WebApplicationException(Status.NO_CONTENT);
|
throw new WebApplicationException(Status.NO_CONTENT);
|
||||||
|
|
Loading…
Reference in New Issue