From 2d058d8a47b5f39d9cf9a9046bc9b65a53208cac Mon Sep 17 00:00:00 2001
From: Fabien O'Carroll <fabien@allou.is>
Date: Wed, 9 Oct 2019 10:15:25 +0700
Subject: [PATCH] Refactored updateSubscription to fetch payment info

no-issue
---
 ghost/members-api/lib/stripe/index.js | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/ghost/members-api/lib/stripe/index.js b/ghost/members-api/lib/stripe/index.js
index 04103d3a25..95c1355970 100644
--- a/ghost/members-api/lib/stripe/index.js
+++ b/ghost/members-api/lib/stripe/index.js
@@ -215,8 +215,15 @@ module.exports = class StripePaymentProcessor {
     }
 
     async _updateSubscription(subscription) {
-        debug(`Attaching subscription to customer ${subscription.customer} ${subscription.id}`);
         const payment = subscription.default_payment_method;
+        if (typeof payment === 'string') {
+            debug(`Fetching default_payment_method for subscription ${subscription.id}`);
+            const subscriptionWithPayment = await retrieve(this._stripe, 'subscriptions', subscription.id, {
+                expand: ['default_payment_method']
+            });
+            return this._updateSubscription(subscriptionWithPayment);
+        }
+        debug(`Attaching subscription to customer ${subscription.customer} ${subscription.id}`);
         await this.storage.set({
             subscription: {
                 customer_id: subscription.customer,