检索用于 Stripe 的促销代码

Retrieve which promotion code was used with Stripe

使用 Stripe 付款后,我想知道使用了哪个促销代码。

重定向到我的网站后,我可以通过以下方式成功检索有关该会话的信息:

\Stripe\Checkout\Session::retrieve([SESSION_ID]);

以及有关特定付款的信息:

\Stripe\paymentIntent::retrieve([PAYMENT_INTENT]);

但这两个都不包括有关使用哪个促销代码的信息,只包括支付的金额。

是否也可以找出使用了哪个促销代码?

您可以通过包含 breakdownAPI ref) with expansion:

从结帐会话 total_details 中获取此信息
curl  https://api.stripe.com/v1/checkout/sessions/cs_test_a1b2c3 \
  -u sk_test_123: \
  --data 'expand[]=total_details.breakdown'

虽然由于 4 层的深度限制无法一直向下展开,但您可以获得促销代码 ID。如果您想要相应的代码,那么您可以检索该促销代码对象并检查它。

详细说明 Nolan 的回答,这就是我在 PHP 中得出的结果:

$checkout_session = \Stripe\Checkout\Session::retrieve([
    'id' => SESSION_ID,
    'expand' => ['total_details.breakdown'],
  ]);

然后我可以通过以下方式检索使用过的促销代码:

$total_details['breakdown']['discounts'][0]['discount']['coupon']['name']