在测试模式下使用 payouts_enabled 创建连接用户?

Posted

技术标签:

【中文标题】在测试模式下使用 payouts_enabled 创建连接用户?【英文标题】:Create a connected user with payouts_enabled in test mode? 【发布时间】:2021-03-12 17:38:30 【问题描述】:

假设我们希望在应用中对条带连接执行简单的手动测试:

    创建普通用户 创建连接用户 普通用户向连接用户付费

问题是,除非payouts_enabled 在第 2 步中为真,否则当普通用户尝试向已连接的用户付款时,我们总是会收到错误消息。

另外,获取details_submitted 的方法是正确的,是通过浏览器并输入虚拟信息,但问题是测试套件并不仅仅允许测试信息通过 - 你必须输入诸如社交之类的内容安全号码,街道地址等手动,并且不可避免地没有通过Stripe的标准,所以details_submitted可以是真的,但payouts_enabled不可避免地仍然是假的

问题

我需要一种在测试模式下使用payouts_enabled 创建连接用户的方法。我该怎么做?

注意

我希望有两种可能实现这一点:

    以编程方式使用 Stripe gem 中的一些 ruby​​ 代码生成具有payouts_enabled == true 的连接用户 通过浏览器(即通过知道地址、社会保险号、电话号码的值将通过 Stripe 的检查并确保 payouts_enabled == true

【问题讨论】:

根据文档stripe.com/docs/connect/testing#payouts,“测试模式标准账户始终启用支付,只要满足有效的外部银行信息和其他相关条件,并且永远不需要真实身份验证。”因此,连接的用户似乎需要合法的银行信息,但别无其他。 虽然您必须完成身份验证步骤,但您可以使用自定义连接帐户通过 API 完成。通常建议在测试模式下设置这样的帐户,然后将其重新用于 CI 目的:stripe.com/docs/connect/testing-verification @dbugger 非常感谢。在三种类型的条带连接帐户(标准、快速、自定义)中,您自己和 taintedzodiac 为(只是我的运气)标准和自定义提供了很好的提示,我正在使用.. Express。我会照样阅读文档,然后报告 【参考方案1】:

客户支持部门花了 2 个小时才弄明白。很想知道如何用代码做到这一点(如果我弄清楚了会更新)。以下是如何通过 UI 执行此操作:

首先创建一个账户(这部分使用代码):


require 'stripe'

# use this if stripe test key is in credentials.yml....
# Stripe.api_key = Rails.application.credentials[Rails.env.to_sym][:stripe][:test_api_key]

# ....otherwise simply use this:
Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc'

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

由于 Stripe 文档不包含完整的关联用户信息,请不要输入随机值,因为它很有可能不会批准您输入的内容(例如无效的地址、电话号码、社会保障号码等)。改用这些:

电子邮件:使用非常随机的东西,否则真人会收到条带测试电子邮件sdlfkjsdlkfjslkdfj@sldkfjkkhfksdjdfkj.com 业务类型:个人 电话:(美国)0000000000 法定名称:在此处使用任何名称 出生日期:随便 地址 - 这很麻烦。这是一个有效的方法: 地址 1 号线:布罗克顿大道 777 号 地址第 2 行:将此字段留空 城市:阿宾顿 州:马萨诸塞州 邮编:02351 社保后四位:0000

现在连接的帐户可以收到这样的付款意图

    payment_intent = Stripe::PaymentIntent.create(
      payment_method_types: ['card'],
      amount: @amount_minor_unit, # e.g. 1000 for $10
      currency: @currency, # e.g. "USD"
      application_fee_amount: 123, 
      transfer_data: 
        destination: @user.stripe_account,
      ,
    )

【讨论】:

以上是关于在测试模式下使用 payouts_enabled 创建连接用户?的主要内容,如果未能解决你的问题,请参考以下文章

实时模式下的条带测试

Mandrill 在测试模式下如何处理附件?

在测试模式下使用 Android 中的 Stripe 向 Google 付款

我可以在测试模式下上传 Iphone App

如何在手表模式下进行任何摩卡测试之前运行全局设置脚本

如何使用 vscode 设置 jest typescript 测试以在调试模式下运行