Stripe connect 加入限制国家/地区? (锁定“澳大利亚”)

问题描述 投票:0回答:6

我使用以下命令创建一个新的 Stripe 连接帐户:

account = Stripe::Account.create({
  type: 'express',
  requested_capabilities: ['card_payments', 'transfers']
})

当用户单击“连接 Stripe”时,他们开始输入详细信息。他们可以输入美国电话号码,但不能输入美国地址 - 该国家/地区已锁定为澳大利亚,单击“澳大利亚”尝试更改它根本不会执行任何操作:

enter image description here

此外,“州”字段仅显示澳大利亚各州:

enter image description here

为什么stripe做出这样的限制?我很确定我在设置stripe时已经正确配置了它,我怀疑这是我的代码的问题(我在

Stripe::Account.create()
期间正在做或没有做的事情)?

我尝试过的事情

尝试1

我尝试过

requested_capabilities: ['card_payments']
,但是:

Accounts do not currently support `card_payments` without `transfers`. 
Please visit 
https://stripe.com/docs/connect/account-capabilities#card-payments 
for more details.

尝试2

我尝试了

requested_capabilities: ['transfers']
,没有错误,但我仍然只能输入澳大利亚地址。

尝试3

我检查了平台仪表板中的设置,无法发现设置中的任何异常情况,并确认 connect 配置为接受来自澳大利亚 + 35 个其他国家/地区的连接用户

enter image description here

ruby-on-rails stripe-payments payment-gateway
6个回答
3
投票

我认为 Stripe API v1 应该允许您指定国家/地区。根据我在文档中看到的内容,我认为您应该指定您想要的内容。

StripeAPI 文档的

POST /v1/accounts 看起来像这样

require 'stripe'
Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc'

Stripe::Account.create({
  type: 'custom',
  country: 'US',
  email: '[email protected]',
  capabilities: {
    card_payments: {requested: true},
    transfers: {requested: true},
  },
})

您可能需要进一步配置。如果指定国家/地区不能解决问题,请告诉我。从这里阅读。根据 API 中的内容,

country
是可选的。由于您没有指定,因此默认为您的位置。

截至今天,Stripe Express 支持澳大利亚、奥地利、比利时、保加利亚、加拿大、塞浦路斯、捷克共和国、丹麦、爱沙尼亚、芬兰、法国、德国、希腊、香港、匈牙利、爱尔兰、意大利、日本、拉脱维亚、立陶宛、卢森堡、马耳他、墨西哥、荷兰、新西兰、挪威、波兰、葡萄牙、罗马尼亚、新加坡、斯洛伐克、斯洛文尼亚、西班牙、瑞典、瑞士、英国或美国。因此,您可以决定要指定哪个国家/地区并输入 ISO 3166-1 alpha-2 国家/地区代码。


2
投票

在我们的例子中,问题在于

suggested_capabilities[]=transfers
URL 参数的存在。这种设置导致只有美国、巴西和日本成为选择。甚至支持转移的国家也没有出现。这很不幸,因为该 URL 参数位于 Stripe Connect Express 的官方入门文档中。

因此,有效的方法是为客户提供一个类似的 URL

https://connect.stripe.com/express/oauth/authorize?redirect_uri=https://our-site.com/stripe/connect&client_id=our_client_id&state=our_state
而不是
https://connect.stripe.com/express/oauth/authorize?redirect_uri=https://our-site.com/stripe/connect&client_id=our_client_id&state=our_state&suggested_capabilities[]=transfers


2
投票

对我来说,我发现我必须向用户提供一张表格,先填写国家/地区 - 然后再为他们创建 Stripe Connect 帐户。

如果用户没有此选项,Stripe 默认会选择美国作为连接帐户国家/地区,这很奇怪。

他们应该在文档中指定这一点,或者让用户在连接入门流程中选择国家/地区,这更理想。


1
投票

我收到了 Stripe 支持的回复,但他们的回复与 @Afolabi 的答案相矛盾,也与代码在 Rails 控制台中运行时发生的情况相矛盾。所以我回复了额外的信息,并会在收到回复后更新。

条纹说:

如果您有标准和快速帐户,则用户将指示他们的 Stripe 帐户所在的国家/地区,对于自定义帐户,平台需要指示国家/地区,因为与标准和快速 Stripe 不同,自定义帐户没有仪表板账户。

但是我所有尝试生成

express
帐户但不提供国家/地区都会导致该国家/地区默认为'US'
并且用户无法更改它(因此我现阶段能做的最好的事情就是确保平台(即我的应用程序)提供了国家参数)

最小可重现示例

这是问题的完整 MRE:

require 'stripe' Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' new_account = Stripe::Account.create({ type: 'express', email: '[email protected]', capabilities: { card_payments: {requested: true}, transfers: {requested: true}, }, }) account_links = Stripe::AccountLink.create({ account: new_account.id, refresh_url: 'http://localhost:3000/reauth', return_url: 'http://localhost:3000/return', type: 'account_onboarding', }) # Visit url provided and see that country is locked to 'US', # and it cannot be input by the user being onboarded like stripe # support suggests should happen
    

0
投票
是的,所以问题是,当您覆盖所请求的默认功能时,您需要指定国家/地区,或者默认为您的平台国家/地区 不要覆盖这些功能,而是考虑更改连接设置中国家/地区的默认设置 如果您有特定原因需要覆盖,那么您还需要指定国家/地区

来自

const stripeAccount = await stripe.accounts.create({ type: 'express', email: userData.email, //country: country, capabilities: { card_payments: { requested: true }, transfers: { requested: true }, }, });
更改为

const stripeAccount = await stripe.accounts.create({ type: 'express', email: userData.email, });
    

0
投票
转到此链接并选择所有国家/地区:

https://dashboard.stripe.com/settings/connect/onboarding-options/countries

© www.soinside.com 2019 - 2024. All rights reserved.