[英]retrieve a coupon in stripe using python
我正在為我們的產品創建訂閱 function 的項目。 我正在創建一個 function 來檢查用戶輸入的優惠券代碼是否與條帶中的 coupon.id 匹配,如果匹配,則應將其存儲在 session 中,否則應顯示“錯誤代碼”消息。 我的代碼似乎不正確並且無法正常工作。 請幫忙 !!!
views.py
def retrieve_coupon(request):
if request.method == 'POST':
form = CouponApplyForm(request.POST)
if form.is_valid():
code = form.cleaned_data['code']
try:
coupon_id = stripe.Coupon.retrieve(code)
request.session['coupon'] = code
except coupon.DoesNotExist:
messages.info(request, "This coupon does not exist")
request.session['coupon'] = None
context={
'form':form
}
return render(request, "retrieve_coupon.html", context)
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>
兩個可能的問題:
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")
如果您有條帶 package,請設置 API 密鑰,然后通過條帶創建優惠券,這將起作用。
關於否決票,您應該收到如下錯誤:“NameError: name 'coupon' is not defined”。 然后你可以問更具體的問題,如何處理條帶無效請求,答案是:
try:
stripe.Coupon.retrieve("invalid_id")
except stripe.error.InvalidRequestError:
# handle error
如果這不是解決方案,請確保您正確使用 Stripe。 您是否在進行成功的嘗試?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.