diff --git a/payment.py b/payment.py index 4addd59c07..574601ae65 100644 --- a/payment.py +++ b/payment.py @@ -1,6 +1,5 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import datetime as dt import uuid import logging import urllib.parse @@ -975,9 +974,6 @@ class Account(ModelSQL, ModelView): depends=['webhook_identifier'], help="The Stripe's signing secret of the webhook.") last_event = fields.Char("Last Event", readonly=True) - setup_intent_delay = fields.TimeDelta( - "Setup Intent Delay", required=True, - help="The delay before cancelling setup intent not succeeded.") @classmethod def __setup__(cls): @@ -1006,10 +1002,6 @@ class Account(ModelSQL, ModelView): '/webhook/%(identifier)s' % url_part)) - @classmethod - def default_setup_intent_delay(cls): - return dt.timedelta(days=30) - @classmethod def fetch_events(cls): """Fetch last events of each account without webhook and process them @@ -1723,30 +1715,21 @@ class Customer(CheckoutMixin, DeactivableMixin, ModelSQL, ModelView): # Use clear cache after commit customer = cls(customer.id) setup_intent = customer.stripe_setup_intent - if not setup_intent: - continue - if setup_intent.status not in {'succeeded', 'canceled'}: - delay = customer.stripe_account.setup_intent_delay - expiration = dt.datetime.now() - delay - if dt.datetime.fromtimstamp(setup_intent.created) < expiration: - stripe.SetupIntent.cancel( - customer.stripe_customer_id, - api_key=customer.stripe_account.secret_key) + if not setup_intent or setup_intent.status != 'succeeded': continue customer.lock() try: - if setup_intent.status == 'succeeded': - if customer.stripe_customer_id: - stripe.PaymentMethod.attach( - setup_intent.payment_method, - customer=customer.stripe_customer_id, - api_key=customer.stripe_account.secret_key) - else: - cu = stripe.Customer.create( - api_key=customer.stripe_account.secret_key, - payment_method=setup_intent.payment_method, - **customer._customer_parameters()) - customer.stripe_customer_id = cu.id + if customer.stripe_customer_id: + stripe.PaymentMethod.attach( + setup_intent.payment_method, + customer=customer.stripe_customer_id, + api_key=customer.stripe_account.secret_key) + else: + cu = stripe.Customer.create( + api_key=customer.stripe_account.secret_key, + payment_method=setup_intent.payment_method, + **customer._customer_parameters()) + customer.stripe_customer_id = cu.id except (stripe.error.RateLimitError, stripe.error.APIConnectionError) as e: logger.warning(str(e)) diff --git a/view/account_form.xml b/view/account_form.xml index 16d6b3f16c..ab2aff19fc 100644 --- a/view/account_form.xml +++ b/view/account_form.xml @@ -13,7 +13,4 @@ this repository contains the full copyright notices and license terms. -->