From cc42f3bbd93c9f16d1d98003723bd79cd9cbe798 Mon Sep 17 00:00:00 2001 From: Adrian Moennich Date: Thu, 7 Dec 2017 16:57:27 +0100 Subject: [PATCH] Payment/PayPal: Use ascii-only item name This hopefully fixes certain weird IPN validation failures... --- payment_paypal/indico_payment_paypal/plugin.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/payment_paypal/indico_payment_paypal/plugin.py b/payment_paypal/indico_payment_paypal/plugin.py index 3a98ef6..778fc75 100644 --- a/payment_paypal/indico_payment_paypal/plugin.py +++ b/payment_paypal/indico_payment_paypal/plugin.py @@ -23,7 +23,7 @@ from wtforms.validators import DataRequired, Optional from indico.core.plugins import IndicoPlugin, url_for_plugin from indico.modules.events.payment import (PaymentEventSettingsFormBase, PaymentPluginMixin, PaymentPluginSettingsFormBase) -from indico.util.string import remove_accents +from indico.util.string import remove_accents, unicode_to_ascii from indico.web.forms.validators import UsedIf from indico_payment_paypal import _ @@ -69,8 +69,10 @@ class PaypalPaymentPlugin(PaymentPluginMixin, IndicoPlugin): def adjust_payment_form_data(self, data): event = data['event'] registration = data['registration'] - data['item_name'] = '{}: registration for {}'.format(remove_accents(registration.full_name, reencode=False), - remove_accents(event.title, reencode=False)) + data['item_name'] = '{}: registration for {}'.format( + unicode_to_ascii(remove_accents(registration.full_name, reencode=False)), + unicode_to_ascii(remove_accents(event.title, reencode=False)) + ) data['return_url'] = url_for_plugin('payment_paypal.success', registration.locator.uuid, _external=True) data['cancel_url'] = url_for_plugin('payment_paypal.cancel', registration.locator.uuid, _external=True) data['notify_url'] = url_for_plugin('payment_paypal.notify', registration.locator.uuid, _external=True)