Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Contenu 

Sommaire
maxLevel2
stylenone

Plus d'information

Page Tree
rootBascule à la source

Extrait
hiddentrue

guide doc technique : Bascule-à-la-source - Guide d'intégration commerçant

les surcharges de trafic, les pannes ou les opérations de maintenance qui détériorent la qualité de service.

Intégration API DirectPayment

Cinématique de bascule

Cette procédure vous permet d'éviter une boucle sans fin de bascule : 

  • Sélection du premier endpoint.
  • Appel du service et vérification du résultat :
  • Si l'appel est réalisé avec succès alors fin de la procédure. 


  • Implémentation sur les appels WebService DirectPaymentAPI et WebPaymentAPI

    Il est recommandé d'utiliser la bascule à la source au niveau des appels WebService effectués entre le backend marchand et l'API WebService Payline.

    Pour implémenter ce mécanisme, il faut  : 

    • mettre à jour la version du kit java/php/.net avec celle supportant la bascule à la source
    • ou effectuer les développements sur le backend marchand si les kit fournis par Payline ne sont pas utilisés sur votre système. 

    Ci-dessous les détails des explications sur la manière de l'implémenter côté serveur marchand (utilisation du service d'annuaire, ajout d'en-tête http, cas de bascule, ...)


    Cinématique de bascule


    Diagramme draw.io
    bordertrue
    diagramNamebascule_source_process_ws
    simpleViewerfalse
    width
    linksauto
    tbstyletop
    lboxtrue
    diagramWidth896
    revision4



    1.  Comment utiliser le service d'annuaire ?

    Si l'appel est en erreur :
  • Conditions de bascule non respectées alors fin de la procédure. 
  • Conditions de bascule respectées : 
    1. Vérification si tous les endpoints sont en erreurs ?
      1. oui alors fin de la procédure.
      2. non alors sélection du endpoint suivant et retour à l'étape 2.
    1. Sélection du premier endpoint

    Monext propose un service d'annuaire de manière à rendre dynamique la liste des endpoints à utiliser. Ce service est optionnelleoptionnel, vous pouvez utiliser une liste statique, néanmoins il vous permet d'éviter des mises à jour manuelles. Ce service est au format REST et permet en fonction du chemin passé, de récupérer la liste des endpoint Payline REST ou SOAP

    Cet annuaire est disponible ici et doit être appelé par un GET :

    Environnement

    Url REST

    URL de l'annuaire pour récupération des endpoints REST Payline

    URL de l'annuraire pour récupération des endpoints SOAP PaylineUrl SOAP

    Homologationhttps://homologation-payment.payline.com/services/servicesendpoints/REST/{merchantId}https://homologation-payment.payline.com/services/servicesendpoints/SOAP/{merchantId}
    Productionhttps://payment.payline.com/services/servicesendpoints/REST/{merchantId}https://payment.payline.com/services/servicesendpoints/SOAP/{merchantId}

    Ces services renvoient un tableau JSON contenant :

    • l'ensemble des endpoints accessibles
    et à utiliser ainsi que
    • à utiliser, dans l'ordre de priorité (première URL de la liste, puis seconde URL de la liste, ...)
    • la durée de validité de ces URLs
    .
    • "ttl" (Time To Live)

    Les URLs renvoyées par le service d'annuaire doivent être mises en cache pour la durée spécifiée dans la réponse.

    Directory Response (exemple en production)

    {
        "ttl":"10080",
        "urls":[
            "https://services.payline.com/V4",
            "https://services-2.payline.com/V4"
        ]
    }


    Gestion du service d'annuaire

    • Récupération des endpoint dans l'annuaire

    • Mise en cache des endpoints, pour la durée des TTL (en seconde)
    Services

    • Attente d'
    annuaireAttente
    • expiration du ttl et nouvel appel à l'annuaire
    • Si appel à l'annuaire en succès et réponse non vide, rafraichissement du cache



    Avertissement
    titleAttention - Appels à l'annuaire

    Pour des raisons de performance, la mise à jour des URLs doit respecter les ttl indiqués. Le ttl est le ttl (Time To Live) indiqués (il est en seconde.) En aucun cas cet annuaire ne doit être sollicité à chaque appel WebService/REST. 


    Avertissement
    titleAttention - En cas d'indisponibilité de l'annuaire

    Si l'appel à l'annuaire est en échec et/ou qu'une liste vide est retournée, ne pas supprimer les URL présentes côté serveur client et les conserver jusqu'au prochain appel en succès.  Ceci afin d'éviter qu'en cas d'échec ou d'incident sur le service d'annuaire, tous les appels webservices soient en échec. 


    Info
    titleAttention - Nouvelles URL à contacter depuis vos serveurs et applications

    En cas de restriction sur les URL joignables depuis vos applications/serveurs, des ouvertures vers de nouvelles URL sont à effectuer sur votre infrastructure. Voici le tableau récapitulatif : 


    HORS PRODUCTIONPRODUCTION

    URLIPURLIP
    Endpoint Annuaire Payline https://homologation-payment.payline.com/services/servicesendpoints/*31.210.0.103
    31.210.4.103
    https://payment.payline.com/services/servicesendpoints/*31.210.4.112
    31.210.0.112
    Endpoint de secours sur basculehttps://homologation-2.payline.com/* 31.210.5.100
    31.210.1.100
    https://services-2.payline.com/*31.210.5.108
    31.210.1.108




    2. Dans quels cas déclencher la bascule à la source suite à l'échec d'un appel API WebService ? 

    . Contrôle du résultat des services

    Liste de services concernées

    Ces Les services suivants pourront être traités par la bascule pour améliorer la qualité de service :

    services

    doAuthorization
    doImmediateWalletPayment
    verifyEnrollment
    verifyAuthentication
    doReAuthorization
    doWebPayment
    getWebPaymentDetails
    Condition

    Conditions de

    bascule

    bascule 

    Les conditions qui permettent de tenter un nouvel appel sur le endpoint suivant sont :

    • Timeout ou non réponse après 30 secondes


    • Réception d'une réponse avec un code HTTP :
      • 408 - Request Timeout
      • 500 - Internal server error
      • 502 - Bad gateway
      • 503 - Service unavailable
      • 504 - Gateway timeout


    • Réception d'un code retour métier :
      • 04901 - System error
      • 02101 - Internal error


    Info
    titleConseil - Listes de codes retours

    Les deux liste listes de code retour codes retours http et de code retour codes retours métier doivent pouvoir être paramétrable paramétrables côté client. Elles pourraient être enrichies lors d'évolutions futures. 



    3.

    Paramètre des appels suivants

    Comment enrichir l'appel WebService lors d'une bascule ? 

    De manière à pouvoir identifier un appel réalisé suite à une bascule, certains header HTTP doivent être positionnés lors des appels suivants :

    Propriété

    Description

    Type

    Exemple

    x-failover-cause

    Message indiquant la raison du déclenchement de la bascule à la source :

    • TIMEOUT
    • HTTP_[code] où code vaut le code HTTP reçu
    • APP_[code] où code vaut le code Payline reçu

    (info)  Ce paramètre doit obligatoirement être présent avec une valeur non vide pour que la requête soit considérée comme une requête de bascule.

    String

    "TIMEOUT"

    "HTTP_503"

    "APP_02101"

    x-failover-duration

    Durée en millisecondes de la requête ayant déclenchée la bascule à la source

    Ce champ est facultatif.

    Integer255
    x-failover-origin

    URL du DataCenter qui était en erreur et qui a induit la bascule.

    Ce champ est facultatif.

    String"https://services.payline.com/services/V4"

    x-failover-index

    Index indiquant le nombre de bascule effectuées. Cet index commence à 1 pour la 1ere bascule.

    Ce champ est facultatif.

    Integer1