2016-04-11 46 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

这是一个非常简单的逻辑错误,我已经纠正了。我正在创建一个客户对象,然后创建一个订阅对象,并最后将折扣代码应用到已创建的订阅对象。创建订阅对象会立即向客户开具帐单,并且由于我在创建初始订阅后应用了优惠券,因此它没有在第一个结算周期中应用。

为了在第一个周期为客户开票,最好在首次创建客户时将优惠券与客户对象相关联。