Stripe payments 将数据存储在条带中,作为web钩子数据的一部分发送回去?

Stripe payments 将数据存储在条带中,作为web钩子数据的一部分发送回去?,stripe-payments,stripe-connect,stripe.net,Stripe Payments,Stripe Connect,Stripe.net,我第一次和Stripe一起工作。我使用的是独立帐户。我也有一个平台帐户。在我的网站上,许多拥有不同账户的人将开展活动,不同的捐赠者可以为这些活动捐款。每个活动所有者都有一个单独的条带帐户,平台将通过活动所有者的条带帐户收费 因此,这意味着平台帐户将通过每个活动所有者的Stripe帐户对多个活动收费。我的问题与web挂钩有关。需要记住的一点是,每个活动在数据库中都有一个与其关联的id,我正在存储每个活动所有者的条带帐户的API密钥,并将其与此id关联。要从web钩子端点的web钩子中获取条带数据,

我第一次和Stripe一起工作。我使用的是独立帐户。我也有一个平台帐户。在我的网站上,许多拥有不同账户的人将开展活动,不同的捐赠者可以为这些活动捐款。每个活动所有者都有一个单独的条带帐户,平台将通过活动所有者的条带帐户收费

因此,这意味着平台帐户将通过每个活动所有者的Stripe帐户对多个活动收费。我的问题与web挂钩有关。需要记住的一点是,每个活动在数据库中都有一个与其关联的id,我正在存储每个活动所有者的条带帐户的API密钥,并将其与此id关联。要从web钩子端点的web钩子中获取条带数据,我必须使用以下语句设置连接帐户的API密钥:

\Stripe\Stripe::setApiKey("api key of stand alone account");
$input = @file_get_contents("php://input");
这样做的问题是,许多条带帐户都有一个web钩子端点。我无法在上述语句中硬编码API密钥。我必须使用id从数据库中获取适当的API密钥


但是当Stripe调用web钩子端点时,为了获取适当的API密钥并设置API密钥,我根本没有活动id。有什么解决方案吗?

您不需要存储每个帐户的API密钥。您需要存储的唯一信息是帐户ID(
“acct”…
)。对于独立帐户,您的集成将在OAuth流的
stripe\u user\u ID
参数中接收帐户ID

然后,您可以使用自己(平台)的API密钥和标头代表该帐户发出API请求

特别是关于Webhook,通过“连接”端点发送到服务器的事件将包括一个带有帐户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)
);

谢谢你。我明天第一件事就是试试。我的办公时间再过10分钟就结束了。我明天早上第一件事就是尝试。事件发生在连接的帐户中,或者在我的情况下,活动所有者的条带帐户中,数据将从那里发送到我服务器中的端点。我还可以使用平台API密钥吗?可以。您根本不需要为存储每个帐户的API密钥而烦恼。正如我所解释的,您应该始终使用自己的API密钥和
条带帐户
标题。谢谢您。我现在在家。我明天到办公室后会做这件事。谢谢,你好。很抱歉,我没有存储api密钥。我那样说是错误的。我仅使用数据库中的活动ID将帐户ID与它所属的活动关联起来。我解决问题的方法是将活动id作为查询字符串添加到web钩子url。我的web钩子url看起来像