我正在开发一个项目来为我们的产品创建订阅功能。我正在创建一个函数,以检查用户输入的优惠券代码是否与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}}
答案 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。您正在尝试成功吗?