Projet

Général

Profil

Development #27766

systempayv2 : exposer tous les paramètres du backend

Ajouté par Emmanuel Cazenave il y a plus de 5 ans. Mis à jour il y a plus de 5 ans.

Statut:
Rejeté
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
05 novembre 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:

Description

Pour les backends de paiement, la convention semble être d'exposer les paramètres d'un backend comme un attribut de la classe.

Exemple sur le backend paybox :

class Payment(PaymentCommon):
...
    description = {
        'caption': _('Paybox'),
        'parameters': [
            {
                'name': 'normal_return_url',
                'caption': _('Normal return URL'),
                'default': '',
                'required': False,
            },
            {
                'name': 'automatic_return_url',
                'caption': _('Automatic return URL'),
                'required': False,
            },
....

Sur le backend systempayv2, les choses sont moins directes, et seulement une partie des paramètres déclarés dans PARAMETERS se retrouvent accessibles dans Payment.descritption :

for name in ('vads_ctx_mode', VADS_SITE_ID, 'vads_order_info',
                 'vads_order_info2', 'vads_order_info3',
                 'vads_payment_cards', 'vads_payment_config'):
        parameter = PARAMETER_MAP[name]
        x = {'name': name,
             'caption': parameter.description or name,
             'validation': lambda value: parameter.check_value(value),
             'default': parameter.default,
             'required': parameter.needed,
             'help_text': parameter.help_text,
             'max_length': parameter.max_length}
        description['parameters'].append(x)

Dans #26992, j'aimerais pouvoir interroger les backends de façon homogène, genre savoir si le backend accepte un 'vads_capture_delay' ou un 'capture_day'.

Historique

#1

Mis à jour par Emmanuel Cazenave il y a plus de 5 ans

  • Statut changé de Nouveau à Rejeté

Exposer tous les paramètres provoque un conflit entre la méthode signature et le paramètre du même nom, parce que les paramètres transformés en attributs du backend.

Je m'arrête là, je rendrai uniquement 'vads_capture_delay' disponible dans #26992.

Formats disponibles : Atom PDF