2016-04-11 52 views
0

我使用優惠券代碼「FIRSTTIME」自動向我的服務的首次訂閱者申請50%的折扣。但是,我注意到50%的折扣始終適用於第二個結算週期,而不是第一個。結算週期爲每週一次,我希望第一個結算週期能夠獲得50%的折扣。條形訂閱優惠券不適用於第一個計費週期

在條紋,我的優惠券被配置如下:

  • ID:FIRSTTIME
  • 百分比關:50%關
  • 持續時間:一旦
  • 贖回:2016年12月31日
  • 有效:真

此外,你可以看到我views.py如下:

if request.method == "POST": 
     form = SubscriptionPaymentForm(request.POST) 
     if form.is_valid(): 
      token = stripe.Token.create(
       card = { 
        "number": form.cleaned_data['number'], 
        "exp_month": form.cleaned_data['expiration'].month, 
        "exp_year": form.cleaned_data['expiration'].year, 
        "cvc": form.cleaned_data['cvc'], 
        "name": form.cleaned_data['name'] 
       }, 
      ) 
      c = stripe.Customer.retrieve(customer.stripe_id) 
      c.sources.create(source=token.id) 
      try: 
       sub = c.subscriptions.retrieve(subscription.stripe_id) 
       sub.plan = subscription.weekly_plan 
       sub.save() 
      except: 
       sub = c.subscriptions.create(plan=subscription.weekly_plan) 
       sub.coupon = "FIRSTTIME" 
       sub.save() 
       subscription.stripe_id = sub.id 
       subscription.save() 
       subscription.send_subscription_email(email) 
      subscription.name = form.cleaned_data['name']   
      subscription.checked_out = True 
      subscription.status = "Paid" 
      subscription.save() 
      return HttpResponseRedirect('/profile/') 

我使用Django在Ubuntu與Apache2的服務器。

回答

0

這是一個非常簡單的邏輯錯誤,我已經糾正了。我正在創建一個客戶對象,然後創建一個訂閱對象,並最後將折扣代碼應用到已創建的訂閱對象。創建訂閱對象會立即向客戶開具帳單,並且由於我在創建初始訂閱後應用了優惠券,因此它沒有在第一個結算週期中應用。

爲了在第一個週期爲客戶開票,最好在首次創建客戶時將優惠券與客戶對象相關聯。