Page tree
Skip to end of metadata
Go to start of metadata

Contenu 

Plus d'information


Intégration API DirectPayment

Cinématique de bascule

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

  1. Sélection du premier endpoint.
  2. Appel du service et vérification du résultat :

    1. Si l'appel est réalisé avec succès alors fin de la procédure. 
    2. Si l'appel est en erreur :

      1. Conditions de bascule non respectées alors fin de la procédure. 
      2. 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 optionnelle, 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-b.payline.com/V4"
    ]
}


Récupération des endpoint dans l'annuaire

Mise en cache des endpoints, pour la durée des TTL

Services d'annuaire

Attente expiration du ttl

Pour des raisons de performance, la mise à jour des URLs doit respecter les ttl indiqués. Le ttl est en seconde.


2. Contrôle du résultat des services

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

Condition 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
    • 502 - Bad gateway
    • 503 - Service unavailable
    • 504 - Gateway timeout
  • Réception d'un code retour métier :
    • 04901 - System error
    • 02101 - Internal error

3. Paramètre des appels suivants

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