diff --git a/payment_sixpay/README.md b/payment_sixpay/README.md index e84a95a..10703d2 100644 --- a/payment_sixpay/README.md +++ b/payment_sixpay/README.md @@ -1,8 +1,9 @@ -# SIXPay Payment Plugin +# SIXPay-Saferpay Payment Plugin -This plugin provides a SIXPay payment option for Indico's payment module. +This plugin provides a payment option for Indico's payment module using the +SIXPay Saferpay API. -When used, the user will be sent to SIXPay to make the payment, and afterwards +When used, the user will be sent to Saferpay to make the payment, and afterwards they are automatically sent back to Indico. ## Changelog diff --git a/payment_sixpay/indico_payment_sixpay/blueprint.py b/payment_sixpay/indico_payment_sixpay/blueprint.py index 0019b59..d65a91c 100644 --- a/payment_sixpay/indico_payment_sixpay/blueprint.py +++ b/payment_sixpay/indico_payment_sixpay/blueprint.py @@ -7,7 +7,7 @@ from indico.core.plugins import IndicoPluginBlueprint -from indico_payment_sixpay.controllers import (RHInitSixpayPayment, SixPayNotificationHandler, UserCancelHandler, +from indico_payment_sixpay.controllers import (RHInitSixpayPayment, SixpayNotificationHandler, UserCancelHandler, UserFailureHandler, UserSuccessHandler) @@ -20,4 +20,4 @@ blueprint.add_url_rule('/init', 'init', RHInitSixpayPayment, methods=('GET', 'PO blueprint.add_url_rule('/failure', 'failure', UserCancelHandler, methods=('GET', 'POST')) blueprint.add_url_rule('/cancel', 'cancel', UserFailureHandler, methods=('GET', 'POST')) blueprint.add_url_rule('/success', 'success', UserSuccessHandler, methods=('GET', 'POST')) -blueprint.add_url_rule('/notify', 'notify', SixPayNotificationHandler, methods=('Get', 'POST')) +blueprint.add_url_rule('/notify', 'notify', SixpayNotificationHandler, methods=('Get', 'POST')) diff --git a/payment_sixpay/indico_payment_sixpay/controllers.py b/payment_sixpay/indico_payment_sixpay/controllers.py index 2beba3f..97fdced 100644 --- a/payment_sixpay/indico_payment_sixpay/controllers.py +++ b/payment_sixpay/indico_payment_sixpay/controllers.py @@ -30,7 +30,7 @@ from indico_payment_sixpay.util import (PROVIDER_SIXPAY, SIXPAY_JSON_API_SPEC, S class TransactionFailure(Exception): - """A transaction with SixPay failed. + """A transaction with SIXPay failed. :param step: name of the step at which the transaction failed :param details: verbose description of what went wrong @@ -42,12 +42,12 @@ class TransactionFailure(Exception): class RHSixpayBase(RH): - """Request Handler for asynchronous callbacks from SixPay. + """Request Handler for asynchronous callbacks from SIXPay. These handlers are used either by - - the user, when he is redirected from SixPay back to Indico - - SixPay, when it sends back the result of a transaction + - the user, when he is redirected from SIXPay back to Indico + - SIXPay, when it sends back the result of a transaction """ CSRF_ENABLED = False @@ -78,7 +78,7 @@ class RHInitSixpayPayment(RHPaymentBase): } order_description = settings['order_description'].format(**format_map) order_identifier = settings['order_identifier'].format(**format_map) - # see the SixPay Manual + # see the SIXPay Manual # https://saferpay.github.io/jsonapi/#Payment_v1_PaymentPage_Initialize # on what these things mean transaction_parameters = { @@ -102,7 +102,7 @@ class RHInitSixpayPayment(RHPaymentBase): 'Abort': url_for_plugin('payment_sixpay.cancel', self.registration.locator.uuid, _external=True) }, 'Notification': { - # where to asynchronously call back from SixPay + # where to asynchronously call back from SIXPay 'NotifyUrl': url_for_plugin('payment_sixpay.notify', self.registration.locator.uuid, _external=True) } } @@ -151,8 +151,8 @@ class RHInitSixpayPayment(RHPaymentBase): return redirect(payment_url) -class SixPayNotificationHandler(RHSixpayBase): - """Handler for notification from SixPay service.""" +class SixpayNotificationHandler(RHSixpayBase): + """Handler for notification from SIXPay service.""" def __init__(self): """Initialize request handler.""" @@ -164,15 +164,15 @@ class SixPayNotificationHandler(RHSixpayBase): self.sixpay_url = get_setting('url') def _process(self): - """Process the reply from SixPay about the transaction.""" + """Process the reply from SIXPay about the transaction.""" try: self._process_confirmation() except TransactionFailure as exc: - SixpayPaymentPlugin.logger.warning('SixPay transaction failed during %s: %s', exc.step, exc.details) + SixpayPaymentPlugin.logger.warning('SIXPay transaction failed during %s: %s', exc.step, exc.details) def _process_confirmation(self): """Process the confirmation response inside indico.""" - # assert transaction status from SixPay + # assert transaction status from SIXPay try: assert_response = self._assert_payment() if self._is_duplicate_transaction(assert_response): @@ -183,15 +183,15 @@ class SixPayNotificationHandler(RHSixpayBase): self._verify_amount(assert_response) self._register_payment(assert_response) except TransactionFailure as exc: - SixpayPaymentPlugin.logger.warning('SixPay transaction failed during %s: %s', exc.step, exc.details) + SixpayPaymentPlugin.logger.warning('SIXPay transaction failed during %s: %s', exc.step, exc.details) raise return True def _perform_request(self, task, endpoint, data): - """Perform a request against SixPay. + """Perform a request against SIXPay. :param task: description of the request, used for error handling - :param endpoint: the URL endpoint *relative* to the SixPay base URL + :param endpoint: the URL endpoint *relative* to the SIXPay base URL :param **data: data passed during the request This will automatically raise any HTTP errors encountered during the @@ -208,7 +208,7 @@ class SixPayNotificationHandler(RHSixpayBase): return response def _assert_payment(self): - """Check the status of the transaction with SixPay. + """Check the status of the transaction with SIXPay. Returns transaction assert data. """ @@ -269,7 +269,7 @@ class SixPayNotificationHandler(RHSixpayBase): return False def _capture_transaction(self, assert_data): - """Confirm to SixPay that the transaction is accepted. + """Confirm to SIXPay that the transaction is accepted. On success returns the response JSON data. """ @@ -343,14 +343,14 @@ class UserFailureHandler(RHSixpayBase): return redirect(url_for('event_registration.display_regform', self.registration.locator.registrant)) -class UserSuccessHandler(SixPayNotificationHandler): +class UserSuccessHandler(SixpayNotificationHandler): """User redirect target in case of successful payment.""" def _process(self): try: self._process_confirmation() except TransactionFailure as exc: - SixpayPaymentPlugin.logger.warning('SixPay transaction failed during %s: %s', exc.step, exc.details) + SixpayPaymentPlugin.logger.warning('SIXPay transaction failed during %s: %s', exc.step, exc.details) flash(_('Your payment could not be confirmed. Please contact the event organizers.'), 'warning') else: flash(_('Your payment has been confirmed.'), 'success') diff --git a/payment_sixpay/indico_payment_sixpay/plugin.py b/payment_sixpay/indico_payment_sixpay/plugin.py index 3f2ec96..a71d62b 100644 --- a/payment_sixpay/indico_payment_sixpay/plugin.py +++ b/payment_sixpay/indico_payment_sixpay/plugin.py @@ -12,7 +12,7 @@ from indico_payment_sixpay.forms import EventSettingsForm, PluginSettingsForm class SixpayPaymentPlugin(PaymentPluginMixin, IndicoPlugin): - """SIXPay + """SIXPay Saferpay Provides a payment method using the SIXPay Saferpay API. """ @@ -24,7 +24,7 @@ class SixpayPaymentPlugin(PaymentPluginMixin, IndicoPlugin): event_settings_form = EventSettingsForm #: global default settings - should be a reasonable default default_settings = { - 'method_name': 'SIXPay', + 'method_name': 'SIXPay Saferpay', 'url': 'https://www.saferpay.com/api/', 'username': None, 'password': None, diff --git a/payment_sixpay/indico_payment_sixpay/util.py b/payment_sixpay/indico_payment_sixpay/util.py index 85b3827..cc8a9d6 100644 --- a/payment_sixpay/indico_payment_sixpay/util.py +++ b/payment_sixpay/indico_payment_sixpay/util.py @@ -36,13 +36,13 @@ def validate_currency(iso_code): """ if iso_code in NON_DECIMAL_CURRENCY: raise HTTPNotImplemented( - _("Unsupported currency '{}' for SixPay. Please contact the organizers").format(iso_code) + _("Unsupported currency '{}' for SIXPay. Please contact the organizers").format(iso_code) ) try: iso4217.Currency(iso_code) except ValueError: raise HTTPNotImplemented( - _("Unknown currency '{}' for SixPay. Please contact the organizers").format(iso_code) + _("Unknown currency '{}' for SIXPay. Please contact the organizers").format(iso_code) ) diff --git a/payment_sixpay/setup.cfg b/payment_sixpay/setup.cfg index 6ee7da7..e2745ec 100644 --- a/payment_sixpay/setup.cfg +++ b/payment_sixpay/setup.cfg @@ -1,7 +1,7 @@ [metadata] name = indico-plugin-payment-sixpay version = 3.0 -description = SIXPay payments for Indico event registration fees +description = SIXPay/Saferpay payments for Indico event registration fees long_description = file: README.md long_description_content_type = text/markdown; charset=UTF-8; variant=GFM url = https://github.com/indico/indico-plugins