我正在尝试使用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块中 . 但是,此方法失败,不会引发任何错误 .
这是正确的类方法吗?是信用卡令牌的'source'字段吗?有没有办法在不使用循环的情况下跟踪针对多个项目支付的金额? $stripeAccessToken
是从Connect进程返回的子帐户的access_token,还是refresh_token?或者它是Master Account Publishable / Secret密钥?或者是其他东西?我可以将此格式用于$ stripeAccessToken,还是必须在循环之前使用 Stripe::setApiKey($stripeAccessToken)
?
主账户和子账户目前都在使用测试环境和假卡,但我也想测试实时交易 .
1 回答
这里的第一个问题是你试图重复使用卡片令牌,但这些是一次性使用的,所以一旦用卡片令牌创建费用,你就无法创建新的卡片令牌 .
如果您想向客户收取费用并在多个卖家之间分配付款,则需要使用shared customers . 这是您在案例中需要遵循的流程:
使用 your publishable API密钥为客户的卡详细信息创建卡令牌
使用 your 密钥在条带帐户中创建客户 .
对于您的每个卖家,您需要create a token为您的客户,然后您用来在卖家帐户中创建费用 . 您必须在此为每个卖家创建单独的费用,但您不必多次询问您的客户他的卡详细信息 .
如果我误解了所有物品都来自同一个卖家,你就不需要这么做了,你需要遵循这个流程:
使用您在Connect流程中获得的 their publishable API密钥为客户的卡详细信息创建卡令牌 .
使用您在Connect流程中获得的 their
access_token
在其条带帐户中创建客户,将其作为第二个参数传递给API调用 .通过您在上一步获得的客户ID和
access_token
再次作为第二个参数,为客户购买的商品总金额计费 .