我正在尝试为我的flask应用程序生成代金券。
我需要优惠券,这是不容易使,可以用适当的关键阅读和独特的通过时间。
我已经尝试了hashids,如下所示:
from hashids import Hashids
hash_id = Hashids(salt='Super salt', min_length=8)
hash_id.encrypt(30)
# 'voRDznrz'问题是生成的密钥总是相同的。
我还尝试了一个更聪明的解决方案:
import itsdangerous
signer = itsdangerous.URLSafeTimedSerializer("Super salt")
coupon = signer.dumps("30 days free!")
signer.load(coupon, max_age=3600*24*30)
# IjMwIGRheXMgZnJlZSEi.Dl1JAQ.u_ilEm7nQ_8XIQt3nbwe31hyyRc解决方案要好得多,但我需要存储已经使用的优惠券,以禁止任何重复使用。此外,优惠券是相当丑陋和难以键入为我们的用户。
解决方案:
好的,我是用条纹付款的,答案就在他们的文档里。在python中使用条纹,你可以这样创建优惠券:
stripe.api_key = "Your secret api key"
coupon = stripe.Coupon.create(
duration='repeating',
duration_in_month=2,
percent_off=100,)这意味着优惠券将给予任何订阅2个月的免费,但我不知道如何选择一个具体的产品,可以适用的优惠券。
使用创建的优惠券对象,您只需获取他的id,这是您的优惠券代码。要将其绑定到订阅(并应用它),请执行以下操作:
subscription = stripe.Subscription.retrieve("Subscription ID")
subscription.coupon = coupon.id
subscription.save()发布于 2018-08-24 11:02:26
普通优惠券不是散列键,只是像30FREE这样的一些文本,并存储在一个表中,其中有一列表明优惠券是否已被使用(如果优惠券在表中,则优惠券存在)。
如果您现在不使用ORM,我建议您使用带有Flask-SLQAlchemy,的SQLAlchemy非常容易安装和启动。
注意:您可以将优惠券分配给在优惠券表和用户表之间建立关系的一部分用户,然后实现只有该组内的用户才能兑换优惠券或类似的逻辑。
https://stackoverflow.com/questions/51943228
复制相似问题