过滤您可以访问的账号

您可以使用 Merchant Accounts API 来查看您有权访问的帐号(包括子帐号)的过滤列表。您可以按显示名以及与其他帐号的关系进行过滤。例如,您可以过滤出显示名称包含字符串 "store" 且关联状态为 PENDING 的帐号,以查看尚未接受帐号关联请求的所有商店。

如需查看所有子帐号,请调用 accounts.v1beta.accounts.listSubAccounts

如需查看您有权访问的所有帐号的过滤列表(包括子帐号以及以 User 身份使用的任何帐号),请调用 accounts.v1beta.accounts.list,并在 filter 字段中指定过滤条件。

如需详细了解 filter 字段的语法,请参阅过滤器语法参考文档

以下是您可以使用的过滤条件类型:

账号过滤条件

您可以使用以下字段在 account 级别进行过滤:

  • accountName:按 account 资源的 accountName 过滤。
  • relationship(...):按帐号与其他帐号的关系类型进行过滤。您可以在一个请求中包含多个 relationship(...) 过滤条件。

关系过滤条件

您可以使用 relationship(...) 函数根据以下条件进行过滤:

  • providerId:服务提供商的商家 ID。例如,如果过滤器应仅返回具有由 account/123 提供的服务的帐号,请使用 providerId = 123
  • callerHasAccessToProviderFilter():与您有权访问的服务提供商有关系的帐号的过滤器。
  • externalAccountId:服务提供商向其提供服务的帐号的外部帐号 ID。
  • accountIdAlias::为关系配置的帐号 ID 别名。
  • service(...):作为关系的一部分提供的服务。您可以在一个 relationship(...) 函数中包含多个 service(...) 函数。

服务过滤条件

您可以使用 service(...) 函数,根据帐号的关系状态以及这些关系提供的服务类型,进一步过滤帐号:

  • handshakeState:两个帐号之间服务协议的状态。接受以下值:
    • PENDING
    • APPROVED
  • type::提供程序提供的服务类型。接受以下值:
    • ACCOUNT_MANAGEMENT帐号由提供商管理。
    • ACCOUNT_AGGREGATION提供商是账号的集合商家。

示例

以下是您可以尝试的一些过滤条件示例。

过滤出显示名称包含“store”且提供商 ID 为“123”的帐号:

accountName = "*store*" AND relationship(providerId = 123)

过滤账号“123”的所有子账号:

relationship(providerId = 123 AND service(type = "ACCOUNT_AGGREGATION"))

过滤出使用了获批帐号管理服务的账号:

relationship(service(handshakeState = "APPROVED" AND type = "ACCOUNT_MANAGEMENT"))

过滤出具有特定别名和 ID 并且有权访问提供商的帐号。 您还必须有权访问此请求的提供程序:

relationship(callerHasAccessToProviderFilter() AND externalAccountId = "extAcctId" AND accountIdAlias = "alias")

后续步骤