我第一次使用Stripe工作。我正在使用独立账户。我也有一个平台帐户。在我的网站上,一些拥有不同Stripe帐户的人将开放各种捐赠者可以捐赠资金的活动。每个广告系列所有者都有一个单独的条带帐户,该平台将通过广告系列所有者的条带帐户收费。
因此,平台帐户将通过每个广告系列所有者的Stripe帐户为多个广告系列收费。我的问题与web钩子有关。需要记住的一点是,每个广告系列在数据库中都有一个与之关联的ID,我正在存储每个广告系列所有者的条带帐户的API密钥,并将其与此ID相关联。要从Web挂钩端点中的Web挂钩获取Stripe数据,我必须使用以下语句设置已连接帐户的API密钥:
\Stripe\Stripe::setApiKey("api key of stand alone account");
$input = @file_get_contents("php://input");
这样做的问题是,有许多Stripe帐户有一个Web挂钩端点。我不能在上面的语句中硬编码API密钥。我必须使用id从我的数据库中获取相应的API密钥。
但是当Stripe调用Web挂钩端点时,我根本没有广告系列ID来获取相应的API密钥并设置API密钥。这有什么解决方案吗?
答案 0 :(得分:1)
您无需存储每个帐户的API密钥。您需要存储的唯一信息是帐户ID("acct_..."
)。对于独立帐户,您的集成将在stripe_user_id
参数的OAuth流程的last step中收到帐户ID。
然后,您可以使用自己的(平台)API密钥和Stripe-Account
标题代表此帐户发出API请求。
关于webhooks,通过“Connect”端点发送到您服务器的事件将包含一个带有帐户ID的user_id
字段。所以你可以这样做:
\Stripe\Stripe::setApiKey("PLATFORM_API_KEY");
$input = @file_get_contents("php://input");
$event_json = json_decode($input);
$user_id = $event_json->user_id;
// if you need to send an API request on behalf of this account,
// for example if you want to verify the event by fetching it from
// Stripe, you can use the Stripe-Account header:
$event = \Stripe\Event::retrieve(
$event_json->id,
array("stripe_account" => $user_id)
);