[英]How to check if Coupon is valid for customer before checkout in stripe api
我有一个用例,在使用 Stripe 进行付款之前,我需要确定应用的代码是否对特定客户有效。 假设在 Stripe 中创建了一个优惠券代码为“50%off”,并且只能被客户使用一次。 会有两种情况:
我没有在我的应用程序级别管理优惠券代码,而是使用以下代码来检索优惠券代码数据:
\Stripe\Stripe::setApiKey($this->config->item('stripe_secret_key'));
$couponData = \Stripe\Coupon::retrieve($coupon);
上面的代码与我分享下面的细节
[body] => {
"id": "50%off",
"object": "coupon",
"amount_off": 600,
"created": 1494427220,
"currency": "usd",
"duration": "once",
"duration_in_months": null,
"livemode": false,
"max_redemptions": null,
"metadata": {
},
"name": null,
"percent_off": null,
"percent_off_precise": null,
"redeem_by": null,
"times_redeemed": 4,
"valid": true
}
但我无法弄清楚客户是否已经使用过此优惠券代码。 我尝试传递客户 ID 以及以下内容:
\Stripe\Stripe::setApiKey($this->config->item('stripe_secret_key'));
$couponData = \Stripe\Coupon::retrieve($coupon, ['customer' => $stripe_customer_id]);
但它有相同的反应。
谁能帮我解决这个问题,谢谢!
Stripe 不会告诉您优惠券是否已经被客户使用过。 每次客户兑换优惠券时,您都需要在自己的数据库中跟踪这一点。
正如@koopajah提到的有关客户兑换的详细信息,如在Active Redemptions
下的 Stripe 优惠券仪表板中所见,无法通过 API 获得。
来自条纹邮件列表:
这不是我们目前通过 API 支持的内容。 如果您想获得已领取优惠券的客户名单和数量,则需要在您这边跟踪优惠券兑换情况。 您可以通过网络钩子跟踪兑换情况。
这将适用于一次性优惠券,但可以通过 Stripe 客户和订阅对象的折扣属性获得循环优惠券:
折扣 object包含正在使用的优惠券或促销代码的详细信息。
因此应该可以解析 Stripe 客户或他们订阅的任何应用优惠券。
如果使用促销代码,可以应用一些限制,Stripe 会检查这些限制以阻止再次使用优惠券代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.