通过 Stripe Connect 进行的交易

Transactions via Stripe Connect

我正在尝试使用 Stripe 设置以下内容:

我已经创建了一个主账户和一个子账户。我已通过 Stripe Connect 将子账户连接到主账户。我在 Stripe Connect 流程结束时收到并存储了一个 access_token 和一个 refresh_token。

付款时,一次付款可以涵盖多个项目。我有以下代码 (PHP) 来处理付款:

Stripe_Charge::create(array(
    "amount" => $amt,
    "currency" => "EUR",
    "source" => $stripeCardToken,
    "description" => $description),
    "application_fee_percent" => 0.5
),
    $stripeAccessToken
);

这被放置在一个循环中,用于支付每个项目。它也在一个带有多个 Stripe 异常捕获的 try / catch 块中。但是,此方法失败且未抛出任何错误。

这是正确的class使用方法吗? 'source' 字段是信用卡令牌吗? 有没有一种方法可以在不使用循环的情况下跟踪针对多个项目支付的金额? $stripeAccessToken 子账户的 access_token 是从连接过程返回的,还是 refresh_token?还是主帐户可发布/密钥?或者是其他东西? 我可以将这种格式用于 $stripeAccessToken,还是必须在循环之前使用 Stripe::setApiKey($stripeAccessToken)

主账户和子账户目前都在使用测试环境和假卡,但我也想测试实时交易。

这里的第一个问题是您正在尝试重复使用卡令牌,但这些都是一次性使用的,因此一旦您使用卡令牌创建费用,就无法创建新的。

如果您想向客户收费并在多个卖家之间分摊付款,则需要使用 shared customers。这是您需要遵循的流程:

  • 使用您的可发布的API密钥
  • 为您客户的卡详细信息创建卡令牌
  • 使用您的 密钥在您的 stripe 帐户中创建一个客户。
  • 对于您的每个卖家,您需要 create a token 客户,然后您使用该客户在您的卖家账户中创建费用。您必须在此处为每个卖家创建单独的费用,但您不必多次向您的客户询问他的银行卡详细信息。

如果我误解了所有物品都来自同一个卖家,那么您不需要执行所有这些操作,您需要遵循以下流程:

  • 使用您在连接流程中获得的他们的可发布API密钥为您客户的卡详细信息创建卡令牌。
  • 使用您在连接流程中获得的 他们的 access_token 在他们的条带帐户中创建一个客户,作为第二个参数传递给 API 调用.
  • 通过您在上一步中获得的客户 ID 和再次将 access_token 作为第二个参数,为客户购买的商品总额创建费用。