【问题标题】:Stripe : Error: Received unknown parameter: bank_account[bank_name]条纹:错误:收到未知参数:bank_account [bank_name]
【发布时间】:2019-11-02 19:05:45
【问题描述】:

我一直在尝试将bank_name 添加到我的 Stripe Connect 用户的外部帐户,但我不断收到错误消息,就好像我误读了有关该功能的文档一样。

Error: Received unknown parameter: bank_account[bank_name]

文档显示我应该能够从bank_account 对象访问bank_name,但我的错误被缩小到它为空。我的console.log(newValue.externalAccount.bankName) 按预期返回输入的银行名称,因此输入的不是空值。知道为什么会出现此错误吗?

Firebase 功能:

exports.createStripeAccount = functions.firestore
  .document("users/{userId}")
  .onUpdate(async (change, context) => {
    const newValue = change.after.data();
    const previousValue = change.before.data();
    if (newValue.state === "technician" && previousValue.state === "client") {
      try {
        const account_add_response = await stripe.accounts.create(
          {
            type: "custom",
            country: "US",
            requested_capabilities: ["platform_payments"],
            email: newValue.email,
            tos_acceptance: newValue.stripeTosAcceptance,
            business_type: "individual",
            business_profile: {
              url: newValue.socialLinks.linkedin
            },
            individual: {
              first_name: newValue.firstName,
              last_name: newValue.lastName,
              gender: newValue.gender,
              email: newValue.email,
              phone: newValue.phone,
              address: {
                line1: newValue.address.line1,
                line2: newValue.address.line2,
                city: newValue.address.city,
                state: newValue.address.state,
                postal_code: newValue.address.zip,
                country: newValue.address.country
              },
              ssn_last_4: newValue.technician.ssnLast4,
              dob: {
                day: newValue.dob.day,
                month: newValue.dob.month,
                year: newValue.dob.year
              }
            }
          },
          async function(error, account) {
            if (error) {
              return console.error(error);
            } else {
              console.log(
                "Writing account.id " + account.id + " to user DB..."
              );
              console.log("newValue.externalAccount.bankName: " + newValue.externalAccount.bankName)
              const bank_add_response = await stripe.accounts.createExternalAccount(
                account.id,
                {
                  external_account: {
                    object: "bank_account",
                    country: "US",
                    currency: "USD",
                    account_holder_name:
                      newValue.externalAccount.accountHolderName, // Have user input manually, might be different than user's name
                    account_holder_type: "individual",
                    bank_name: newValue.externalAccount.bankName,
                    routing_number: newValue.externalAccount.routingNumber,
                    account_number: newValue.externalAccount.accountNumber
                  }
                },
                function(error, bank_account) {
                  if (error) {
                    return console.error(error);
                  } else {
                    console.log(
                      "Writing bank_account.id " +
                        bank_account.id +
                        " to user DB..."
                    );
                    return admin
                      .firestore()
                      .collection("users")
                      .doc(context.params.userId)
                      .set(
                        {
                          connectId: account.id,
                          externalAccount: {
                            bankAccountId: bank_account.id,
                            bankName: bank_account.bank_name,
                            last4: bank_account.last4,
                          }
                        },
                        { merge: true }
                      );
                  }
                }
              );
            }
          }
        );
      } catch (error) {
        console.log(error);
        await change.ref.set(
          { error: userFacingMessage(error) },
          { merge: true }
        );
        return reportError(error, { user: context.params.userId });
      }
    }
  });

【问题讨论】:

标签: javascript firebase google-cloud-functions stripe-payments


【解决方案1】:

看来我误解了bank_name 字段的用途。我以为这是用户为其银行帐户定义的自定义名称,例如“Doug's Chase Checkings”,但它似乎是由 Stripe 自动生成的并且是只读的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 2019-10-19
    • 2020-01-16
    • 2019-09-10
    • 2019-09-20
    相关资源
    最近更新 更多