javascript - 对于 Stripe 连接帐户,account.updated webhook 对象的哪一部分表明该帐户已启用?

标签 javascript node.js stripe-payments

我有一个端点正在从连接的 Stripe 帐户接收事件。 Webhook 监听 account.updated 事件类型。它按预期工作。但是,当我查看发送到端点的对象时,我不确定什么表明该帐户处于“已启用”状态。我之所以这么问,是因为如果已成功设置连接帐户,我希望客户能够访问他们的 Stripe 仪表板。如果不是,那么我希望他们能够完成帐户设置过程。任何见解将不胜感激。这是我从 Stripe webhook 得到的:

{
  "id": "EXAMPLEID",
  "object": "event",
  "account": "ACCOUNT",
  "api_version": "2020-03-02",
  "created": 1608614938,
  "data": {
    "object": {
      "id": "ACCOUNTNUMBER",
      "object": "account",
      "business_profile": {
        "mcc": null,
        "name": null,
        "support_address": null,
        "support_email": null,
        "support_phone": null,
        "support_url": null,
        "url": null
      },
      "capabilities": {
        "transfers": "active"
      },
      "charges_enabled": true,
      "country": "US",
      "default_currency": "usd",
      "details_submitted": true,
      "email": null,
      "payouts_enabled": true,
      "settings": {
        "bacs_debit_payments": {
        },
        "branding": {
          "icon": null,
          "logo": null,
          "primary_color": null,
          "secondary_color": null
        },
        "card_payments": {
          "statement_descriptor_prefix": null,
          "decline_on": {
            "avs_failure": false,
            "cvc_failure": false
          }
        },
        "dashboard": {
          "display_name": "Books For Everyone",
          "timezone": "Etc/UTC"
        },
        "payments": {
          "statement_descriptor": null,
          "statement_descriptor_kana": null,
          "statement_descriptor_kanji": null
        },
        "sepa_debit_payments": {
        },
        "payouts": {
          "debit_negative_balances": true,
          "schedule": {
            "delay_days": 2,
            "interval": "daily"
          },
          "statement_descriptor": null
        }
      },
      "type": "express",
      "created": 1608614884,
      "external_accounts": {
        "object": "list",
        "data": [
          {
            "id": "ID_NUMBER_HERE",
            "object": "bank_account",
            "account": "ACCOUNT_NUMBER_HERE",
            "account_holder_name": null,
            "account_holder_type": null,
            "available_payout_methods": [
              "standard"
            ],
            "bank_name": "STRIPE TEST BANK",
            "country": "US",
            "currency": "usd",
            "default_for_currency": true,
            "fingerprint": "x9ELfUw7u81waQkl",
            "last4": "6789",
            "metadata": {
            },
            "routing_number": "110000000",
            "status": "new"
          }
        ],
        "has_more": false,
        "total_count": 1,
        "url": "/v1/accounts/ACCOUNT_NUMBER/external_accounts"
      },
      "login_links": {
        "object": "list",
        "total_count": 0,
        "has_more": false,
        "url": "/v1/accounts/ACCOUNT_NUMBER/login_links",
        "data": [
        ]
      },
      "metadata": {
      },
      "requirements": {
        "current_deadline": null,
        "currently_due": [
        ],
        "disabled_reason": null,
        "errors": [
        ],
        "eventually_due": [
          "individual.dob.day",
          "individual.dob.month",
          "individual.dob.year",
          "individual.ssn_last_4"
        ],
        "past_due": [
        ],
        "pending_verification": [
        ]
      },
      "tos_acceptance": {
        "date": 1608614937
      }
    },
    "previous_attributes": {
      "capabilities": {
        "transfers": "inactive"
      },
      "charges_enabled": false,
      "details_submitted": false,
      "payouts_enabled": false,
      "requirements": {
        "currently_due": [
          "tos_acceptance.date",
          "tos_acceptance.ip"
        ],
        "disabled_reason": "requirements.past_due",
        "eventually_due": [
          "individual.dob.day",
          "individual.dob.month",
          "individual.dob.year",
          "individual.ssn_last_4",
          "tos_acceptance.date",
          "tos_acceptance.ip"
        ],
        "past_due": [
          "tos_acceptance.date",
          "tos_acceptance.ip"
        ]
      },
      "tos_acceptance": {
        "date": null
      }
    }
  },
  "livemode": false,
  "pending_webhooks": 1,
  "request": {
    "id": "ID_NUMBER_HERE",
    "idempotency_key": null
  },
  "type": "account.updated"
}

最佳答案

由于现在一个帐户可能用于多种用途,因此不一定需要检查单个属性是否总体“启用”。大多数情况下,您需要查看功能( docsAPI reference ),例如在数据中您会看到 transfers: 'active',这表明当前已启用帐户transfers .

您还需要关注 requirements 哈希( docsAPI ref ),Stripe 将通过它通知您需要其他信息 now (或eventually)。

关于javascript - 对于 Stripe 连接帐户,account.updated webhook 对象的哪一部分表明该帐户已启用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65411625/

相关文章:

javascript - 使用jQuery控制video标签

node.js - Node gm - 使用裁剪和调整大小会导致错误

php - Stripe s2Member Pro 插件在实时模式下返回 card_declined

javascript - 我如何在 Opal-rails 中打印在 Javascript 中定义的变量

javascript - 定义 Javascript/JQuery 函数

javascript - 从 javascript 数组拼接 2 个键的最佳方法

java - 我可以使用 Stripe 为一个 PaymentIntent 创建多次退款吗?

node.js - 如何编辑通过 npm 安装的 Node 模块?

javascript - 如何从 websocket 连接读取 header

javascript - strip : throw errnoException(process. _errno, 'spawn' );