首页 > 解决方案 > 如何在结帐前检查 Stripe 促销代码是否对产品有效

问题描述

这是我试图用 Stripe Elements 解决的问题。

对于 Stripe 优惠券,我可以选择仅对适用产品有效。

在结帐期间,我想知道用户何时选择了产品,该代码是否适用,以便我可以为该产品(而不是其他产品)提供正确的折扣。

当我检索 PromotionCode 时,无法查看适用的产品 ID。当我检索产品时,没有关于哪些促销代码适用于它的详细信息。

有什么方法可以事先针对产品验证优惠券吗?

标签: stripe-payments

解决方案


对于使用 cURL 的人来说,这是可行的(假设promo_id存在):

curl https://api.stripe.com/v1/promotion_codes/promo_id \
  -u sk_test_redacted: \
  -d "expand[]"="coupon.applies_to" \
  -G

编辑回复:

{
  "id": "promo_id",
  "object": "promotion_code",
  "active": true,
  "code": "MYCODE",
  "coupon": {
    "id": "couponId",
    "object": "coupon",
    "amount_off": null,
    "applies_to": {
      "products": [
        "prod_id"
      ]
    },
    "created": 1621194680,
    "currency": "usd",
    "duration": "repeating",
    "duration_in_months": 6,
    "livemode": false,
    "max_redemptions": 1,
    "metadata": {
    },
    "name": null,
    "percent_off": 75.0,
    "redeem_by": null,
    "times_redeemed": 0,
    "valid": true
  },
  "created": 1621194680,
  "customer": null,
  "expires_at": null,
  "livemode": false,
  "max_redemptions": null,
  "metadata": {
  },
  "restrictions": {
    "first_time_transaction": false,
    "minimum_amount": null,
    "minimum_amount_currency": null
  },
  "times_redeemed": 0
}

如果你想直接使用优惠券ID,你可以使用这个(假设couponId存在):

curl https://api.stripe.com/v1/coupons/couponId \
  -u sk_test_redacted: \
  -d "expand[]"="applies_to" \
  -G

编辑回复:

{
  "id": "couponId",
  "object": "coupon",
  "amount_off": null,
  "applies_to": {
    "products": [
      "prod_id"
    ]
  },
  "created": 1621194680,
  "currency": "usd",
  "duration": "repeating",
  "duration_in_months": 6,
  "livemode": false,
  "max_redemptions": 1,
  "metadata": {
  },
  "name": null,
  "percent_off": 75.0,
  "redeem_by": null,
  "times_redeemed": 0,
  "valid": true
}

推荐阅读