我正在使用优惠券代码' FIRSTTIME自动为我的服务的首次订阅者提供50%的折扣。'但是,我注意到50%的折扣始终适用于第二个结算周期,而不是第一个。结算周期是每周一次,我希望第一个结算周期能够获得50%的折扣。
在Stripe中,我的优惠券配置如下:
此外,您可以在下方看到 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/')
我在Ubuntu上使用Django和Apache2服务器。
答案 0 :(得分:0)
这是我犯的一个非常简单,合乎逻辑的错误,我已经纠正了。我正在创建一个客户对象,然后创建一个订阅对象,最后将折扣代码应用于已经创建的订阅对象。创建订阅对象会立即向客户收取费用,因为我在创建初始订阅后应用了优惠券,因此未在第一个结算周期中应用优惠券。
为了在第一个周期向客户收费,最好在首次创建客户时将优惠券与客户对象相关联。