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.



Implémentation sur les appels WebService DirectPaymentAPI et WebPaymentAPI

Cinématique de bascule

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

Diagramme draw.io
bordertrue
diagramNamebascule_source_process_ws
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth685
revision23



1.  Comment utiliser le service d'annuaire ?

Monext propose un service d'annuaire de manière à rendre dynamique la liste des endpoints à utiliser. Ce service est optionnel, vous pouvez utiliser une liste statique, néanmoins il vous permet d'éviter des mises à jour manuelles.

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

Environnement

Url REST

Url 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 la durée de validité de ces URLs.

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

{
    "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)

  • Attente d'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 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. 



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

Liste de services concernées

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

services

doAuthorization
doImmediateWalletPayment
verifyEnrollment
verifyAuthentication
doReAuthorization
doWebPayment
getWebPaymentDetails

Conditions de 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 listes de codes retours http et de codes retours métier doivent pouvoir être paramétrables côté client. Elles pourraient être enrichies lors d'évolutions futures. 



3. 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