我试图在不使用服务器的情况下在客户端使用条带元素表单时检查优惠券的有效性。我的想法是,我想在签约之前先告诉客户他们的优惠券有效还是无效。
理想情况下,我可以执行以下操作:
stripe.coupons.retrieve(coupon).then((stripe_coupon)=> {
createToken(additionalData);
}).catch((error) => {
throwCardError("Invalid coupon, please try again.");
});
问题在于stripe.coupons不是elements API的一部分,它只是服务器端API的一部分。
我不愿意在服务器端进行检查的原因是因为我使用Firestore存储了所有数据。因此,这意味着要使其正常工作,我必须首先将优惠券写入firebase,并具有一个云功能,该功能调用Stripe API来检查优惠券有效性,然后将其写入数据库的单独部分中,然后在客户端上设置一个侦听器,以侦听数据库中该部分的更改以检查优惠券的有效性,而所有这些操作确实很慢。
有什么方法可以检查条纹元素中条纹优惠券客户端的有效性吗?
答案 0 :(得分:1)
Elements中没有检查优惠券有效性的功能(您可以看到Stripe.js / Elements here 的所有可用方法)。
如果您使用的是Firebase,您可以在此处使用HTTP function设置端点,在客户端代码中使用fetch向该端点发出请求,并传递优惠券ID您想检查一下。
此请求到达此端点时,您将调用Stripe API尝试进行retrieve the coupon,并将结果返回给用户;无需在Firebase数据库中存储优惠券的副本。