使用python检索条纹中的优惠券

时间:2020-07-07 07:36:47

标签: python django

我正在开发一个项目来为我们的产品创建订阅功能。我正在创建一个函数,以检查用户输入的优惠券代码是否与stripe中的coupon.id相匹配,如果确实如此,则应将其存储在会话中,否则应显示“不正确的代码”消息。我的代码似乎不正确,无法正常工作。请帮忙!!!

forms.py

class CouponApplyForm(forms.Form):
    code = forms.CharField()

template

<div class="divo">
    <p>
        coupon code to apply discount
    </p>
    <form action="" method="post">
        {% csrf_token %}
        {{ form }}
        
        <input type="submit" value="apply" class="btn">
        <ul class="messages">
    {% for message in messages %}
    <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
    {% endfor %}
</ul>
</form>
</div>

{{1}}

1 个答案:

答案 0 :(得分:2)

两个可能的问题:

import stripe # make sure this is imported and a python package
stripe.api_key = "SECRET_STRIPE_API_KEY" # Set the API key.

已知错误:

 coupon.DoesNotExist # is not valid

您需要正确处理此类异常:

try:
    coupon_id = stripe.Coupon.retrieve(code)
    request.session['coupon'] = code
except (stripe.error.RateLimitError,
    stripe.error.InvalidRequestError,
    stripe.error.AuthenticationError,
    stripe.error.APIConnectionError,
    stripe.error.StripeError,
    ) as e:
    request.session['coupon'] = None
    messages.info(request, "Error message")

如果您拥有Stripe软件包,请设置API密钥,然后通过Stripe创建优惠券,这将起作用。

关于不赞成投票,您应该会遇到这样的错误:“ NameError:未定义名称'coupon'。然后您可以问一个更具体的问题,如何处理条带无效请求,答案是:

try:
    stripe.Coupon.retrieve("invalid_id")
except stripe.error.InvalidRequestError:
    # handle error 

如果这不是解决方案,请确保正确使用Stripe。您正在尝试成功吗?