Using stripe customer if present.

This commit is contained in:
Samuel Clay 2022-01-24 16:27:37 -05:00
parent 8140df0d7b
commit 31936eec4e
3 changed files with 16 additions and 9 deletions

View file

@ -34,6 +34,7 @@ from vendor.paypalapi.interface import PayPalInterface
from vendor.paypalapi.exceptions import PayPalAPIResponseError
from zebra.signals import zebra_webhook_customer_subscription_created
from zebra.signals import zebra_webhook_charge_succeeded
from zebra.signals import zebra_webhook_charge_succeeded
class Profile(models.Model):
user = models.OneToOneField(User, unique=True, related_name="profile", on_delete=models.CASCADE)

View file

@ -11,6 +11,7 @@ urlpatterns = [
url(r'^set_collapsed_folders/?', views.set_collapsed_folders),
url(r'^paypal_form/?', views.paypal_form),
url(r'^paypal_return/?', views.paypal_return, name='paypal-return'),
url(r'^stripe_return/?', views.paypal_return, name='stripe-return'),
url(r'^is_premium/?', views.profile_is_premium, name='profile-is-premium'),
url(r'^paypal_ipn/?', include('paypal.standard.ipn.urls'), name='paypal-ipn'),
url(r'^paypal_webhooks/?', include('paypal.standard.ipn.urls'), name='paypal-webhooks'),

View file

@ -485,20 +485,25 @@ def stripe_checkout(request):
price = "price_0KK5cvwdsmP8XBlaZDq068bA"
if settings.DEBUG:
price = "price_0KK5twwdsmP8XBlasifbX56Z"
checkout_session = stripe.checkout.Session.create(
line_items=[
session_dict = {
"line_items": [
{
'price': price,
'quantity': 1,
},
],
mode='subscription',
customer_email=request.user.email,
metadata={"newsblur_user_id": request.user.pk},
success_url="http://%s%s" % (domain, reverse('paypal-return')),
cancel_url="http://%s%s" % (domain, reverse('index')),
)
"mode": 'subscription',
"metadata": {"newsblur_user_id": request.user.pk},
"success_url": "http://%s%s" % (domain, reverse('stripe-return')),
"cancel_url": "http://%s%s" % (domain, reverse('index')),
}
if request.user.profile.stripe_id:
session_dict['customer'] = request.user.profile.stripe_id
else:
session_dict["customer_email"] = request.user.email
checkout_session = stripe.checkout.Session.create(**session_dict)
logging.user(request, "~BM~FBLoading Stripe checkout")