Problème d'intégration des paiements Stripe

Bonjour,

Lorsque nous faisons un paiement sur le portail avec la plateforme Stripe, le retour ne se fait plus correctement dans Dokos depuis plusieurs semaines. Le statut de la commande reste « à facturer » et nous avons un message d’erreur dans la demande d’intégration de type « succeeded » :

Traceback (most recent call last):
File « apps/payments/payments/payment_gateways/doctype/stripe_settings/webhook_events/stripe.py », line 39, in handle_webhook
response = reference_document.run_method(« on_payment_authorized », status=self.STATUS_MAP[action], reference_no=self.payment_intent)
File « apps/frappe/frappe/model/document.py », line 1010, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File « apps/frappe/frappe/model/document.py », line 1384, in composer
return composed(self, method, *args, **kwargs)
File « apps/frappe/frappe/model/document.py », line 1366, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File « apps/frappe/frappe/model/document.py », line 1007, in fn
return method_object(*args, **kwargs)
File « apps/erpnext/erpnext/accounts/doctype/payment_request/payment_request.py », line 566, in on_payment_authorized
self.run_method(« set_as_paid », reference_no)
File « apps/frappe/frappe/model/document.py », line 1010, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
File « apps/frappe/frappe/model/document.py », line 1384, in composer
return composed(self, method, *args, **kwargs)
File « apps/frappe/frappe/model/document.py », line 1366, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
File « apps/frappe/frappe/model/document.py », line 1007, in fn
return method_object(*args, **kwargs)
File « apps/frappe/frappe/utils/typing_validations.py », line 30, in wrapper
return func(*args, **kwargs)
File « apps/erpnext/erpnext/accounts/doctype/payment_request/payment_request.py », line 334, in set_as_paid
payment_entry = self.create_payment_entry(reference_no=reference_no)
File « apps/erpnext/erpnext/accounts/doctype/payment_request/payment_request.py », line 360, in create_payment_entry
ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
File « apps/frappe/frappe/init.py », line 1322, in get_doc
doc = frappe.model.document.get_doc(*args, **kwargs)
File « apps/frappe/frappe/model/document.py », line 81, in get_doc
controller = get_controller(doctype)
File « apps/frappe/frappe/model/base_document.py », line 71, in get_controller
site_controllers[doctype] = import_controller(doctype)
File « apps/frappe/frappe/model/base_document.py », line 93, in import_controller
module = frappe.get_module(module_path)
File « apps/frappe/frappe/init.py », line 1465, in get_module
return importlib.import_module(modulename)
File « /usr/lib/python3.10/importlib/init.py », line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File «  », line 1050, in _gcd_import
File «  », line 1027, in _find_and_load
File «  », line 1006, in _find_and_load_unlocked
File «  », line 688, in _load_unlocked
File «  », line 883, in exec_module
File «  », line 241, in _call_with_frames_removed
File « apps/webshop/webshop/controllers/sales_order.py », line 4, in
from erpnext.selling.doctype.sales_order.sales_order import SalesOrder
File « apps/erpnext/erpnext/selling/doctype/sales_order/sales_order.py », line 11, in
from frappe.automation.doctype.auto_repeat.auto_repeat import AutoRepeatScheduler
File « apps/frappe/frappe/automation/doctype/auto_repeat/auto_repeat.py », line 10, in
from frappe.core.doctype.communication.email import make
File « apps/frappe/frappe/core/doctype/communication/email.py », line 9, in
import frappe.email.smtp
File « apps/frappe/frappe/email/smtp.py », line 4, in
import smtplib
File « /usr/lib/python3.10/smtplib.py », line 49, in
import email.generator
File « /usr/lib/python3.10/email/generator.py », line 17, in
from email.errors import HeaderWriteError
ImportError: cannot import name ‹ HeaderWriteError › from ‹ email.errors › (/usr/lib/python3.10/email/errors.py)

Si je clique sur « Réessayer de traiter le webhook », cela fonctionne bien et ma commande est facturée:
image

Pourriez-vous m’aider à comprendre ce qui ne fonctionne plus ?
Je vous remercie.

Yann B.

Bonjour @Yann,

Il faut redémarrer le bench avec bench restart, possiblement lancer bench setup requirements avant.

Pour en savoir plus

Corentin