From efb8ff7bb13100e575cbf9c2ddd381e8fe71e3dc Mon Sep 17 00:00:00 2001 From: Atharva Deosthale Date: Sat, 15 Nov 2025 16:00:23 +0530 Subject: [PATCH] store subscription id while in webhooks --- src/Appwrite/Payments/Provider/StripeAdapter.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Appwrite/Payments/Provider/StripeAdapter.php b/src/Appwrite/Payments/Provider/StripeAdapter.php index b8ec279ea6..8c58aef43e 100644 --- a/src/Appwrite/Payments/Provider/StripeAdapter.php +++ b/src/Appwrite/Payments/Provider/StripeAdapter.php @@ -567,7 +567,7 @@ class StripeAdapter implements Adapter Query::equal('providerSubscriptionId', [$stripeSubId]), ])); - if ((!$subscription instanceof Document || $subscription->isEmpty()) && $type === 'customer.subscription.created') { + if ((!$subscription instanceof Document || $subscription->isEmpty())) { try { $sessionsResponse = $this->request($apiKey, 'GET', '/checkout/sessions', [ 'subscription' => $stripeSubId, @@ -579,6 +579,9 @@ class StripeAdapter implements Adapter $subscription = Authorization::skip(fn () => $this->dbForPlatform->findOne('payments_subscriptions', [ Query::equal('providerCheckoutId', [$sessionId]), ])); + if ($subscription instanceof Document && !$subscription->isEmpty()) { + $subscription->setAttribute('providerSubscriptionId', $stripeSubId); + } } } catch (\Throwable $_) { $subscription = null; @@ -610,6 +613,7 @@ class StripeAdapter implements Adapter $providers['stripe'] = $providerEntry; $subscription->setAttribute('status', $internalStatus); + $subscription->setAttribute('providerSubscriptionId', $stripeSubId); if ($periodStart) { $subscription->setAttribute('currentPeriodStart', $periodStart); }