Stripe - обновить карту по умолчанию - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь позволить пользователю обновить свой способ оплаты по умолчанию после того, как он его добавит.Я получаю это в Firebase Функции: Error: No such source: card_1EhmibFZW9pBNLO2aveVfEm6.

Это заставляет меня поверить, что мне нужно передать default_source a src_XXX... id, а не card_XXX... id.У кого-нибудь есть идеи по этому поводу?

Функция Firebase:

// Update Stripe default card based on user choice
exports.updateDefaultSource = functions.firestore
  .document("users/{userId}")
  .onUpdate(async (change, context) => {
    const newValue = change.after.data();
    const previousValue = change.before.data();
    console.log("previousValue.default_source: "+previousValue.default_source)
    console.log("newValue.default_source: "+newValue.default_source)
    if (
      previousValue.default_source &&
      newValue.default_source !== previousValue.default_source
    ) {
      // this triggers on every update to profile (more overhead), can we reduce this?
      try {
        console.log("newValue.default_source: "+newValue.default_source)
        const response = await stripe.customers.update(
          previousValue.customer_id,
          { default_source: newValue.default_source },
          (err, customer) => {
            console.log(err);
          }
        );
        return console.log("Response from Stripe update: " + response);
      } catch (error) {
        console.log(error);
        await change.ref.set(
          { error: userFacingMessage(error) },
          { merge: true }
        );
        return reportError(error, { user: context.params.userId });
      }
    }
  });

Функция Firebase записывает в журнал после добавления второй Карты в аккаунт: enter image description here

1 Ответ

1 голос
/ 10 июня 2019

Похоже, эта ошибка решилась сама собой, не на 100% уверен в том, как, но я думаю, что это связано с Redux и / или Redux Persist, когда не все загружено в хранилище.

@hmunoz ответил на мой главный вопрос о том, принимает ли default_source тип card_123, что он и делает.

...