simple-login/app/paddle_callback.py
Adrià Casajús faaff7e9b9
Handle failed payments subscriptions in paddle (#1327)
* Handle failed payments subscriptions in paddle

* Added tests

* Remove unused import

* Remove unused import

Co-authored-by: Adrià Casajús <adria.casajus@proton.ch>
2022-09-30 17:51:06 +02:00

33 lines
740 B
Python

import arrow
from app.db import Session
from app.email_utils import send_email, render
from app.log import LOG
from app.models import Subscription
from app import paddle_utils
def failed_payment(sub: Subscription, subscription_id: str):
LOG.w(
"Subscription failed payment %s for %s (sub %s)",
subscription_id,
sub.user,
sub.id,
)
sub.cancelled = True
Session.commit()
user = sub.user
paddle_utils.cancel_subscription(subscription_id)
send_email(
user.email,
"SimpleLogin - your subscription has failed to be renewed",
render(
"transactional/subscription-cancel.txt",
end_date=arrow.arrow.datetime.utcnow(),
),
)