php - 通过 Stripe Connect 进行的交易

标签 php stripe-payments stripe-connect

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

  • 一个主账户
  • 多个子帐户(即连接到主帐户 通过 Stripe Connect 应用程序的帐户)
  • 允许付款给 子账户,主账户按百分比收取费用 交易。

我已经创建了一个主账户和一个子账户。我已通过 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 block 中。但是,此方法失败且未抛出任何错误。

这是正确的类方法吗? 是信用卡 token 的“来源”字段吗? 有没有一种方法可以在不使用循环的情况下跟踪针对多个项目支付的金额? $stripeAccessToken是Connect进程返回的子账号的access_token,还是refresh_token?还是主帐户可发布/ key ?或者是其他东西? 我可以将这种格式用于 $stripeAccessToken,还是必须在循环之前使用 Stripe::setApiKey($stripeAccessToken)

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

最佳答案

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

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

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

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

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

关于php - 通过 Stripe Connect 进行的交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29010551/

相关文章:

php - 如何在 MySQL 中查找所有子行?

PHP Order By 不起作用

ios - 解析服务器 + strip 连接 - iOS

oauth - 在 Stripe Connect OAuth 回调后将应用程序用户与 Stripe 用户相关联

php - 在php mysql中使用while循环的问题

php - 使用 PHP 读取 JSON 数据

ruby-on-rails - 如果我有一个来自收费的 Stripe token ,我如何获得它的收费 ID?

javascript - 客户不是在 Stripe 帐户上创建的

javascript - react-stripe-elements 没有检测到 Stripe.js

accounts - 获取连接的 strip 帐户的帐户 ID