Pour que le commerçant puisse suivre l'évolution du widget dans sa page, Payline propose des Callback. Ces Callback seront appelées par le widget au fil de son exécution de manière synchrone. Pour utiliser ces Callback, le marchant utilise le mécanisme habituel de paramétrage du widget, les attributs data-* dans la div PaylineWidget. La valeur passée doit correspondre à une fonction JavaScript classique, déclarée dans le scope Window, comme dans l'exemple suivant : Bloc de code |
---|
| <html>
<head>
<!-- Import du widget, etc. -->
<script>
function maFonction() {
// Actions à réaliser
}
</script>
</head>
<body>
<div id="PaylineWidget" data-token="123" data-event-nomdeletape="maFonction"/>
</body>
</html> |
Dans l'exemple précédent, la fonction "maFonction" sera appelée lorsque le cycle de vie du widget aura atteint l'étape "nomdeletape".
Les étapes pour lesquelles il est possible de spécifier un Callback sont les suivantes : Identifiant de la callback | Description | Informations passées | Retour possible | Depuis |
---|
data-event-willinit | Le widget s'est chargé sur le navigateur et s'apprête à s'initialiser. | Aucune | Non | 4.46.1 | data-event-willshow | Le widget a réalisé sa première initialisation et s'apprête à s'afficher. Cet événement survient avant que le widget ait récupéré son état auprès du serveur. | Aucune | Non | 4.46.1 | data-event-finalstatehasbeenreached | Le widget va afficher à l'utilisateur un état final (où plus aucune interaction n'est possible) à l'acheteur. | Le nom de l'état atteint. Exemple d'objet passé: Bloc de code |
---|
{
state: "PAYMENT_SUCCESS"
} |
Voir § suivant pour toutes les valeurs possibles | Oui. Si la callback du marchand retourne alors le widget ne gérera pas le nouvel état. | 4.46.1 | data-event-didshowstate | Le widget a récupéré son état auprès du serveur et a affiché le résultat. | Le nom de l'état qui s'est affiché Exemple d'objet passé: Bloc de code |
---|
{
state: "PAYMENT_METHODS_LIST"
} |
Voir § suivant pour toutes les valeurs possibles | Non | 4.49 | data-event-willdisplaymessage | Gestion de l'affichage du message | - TRUE : le comportement du widget n'est pas modifié, i.e. le widget affichera quand même le message
- FALSE : le comportement du widget est impacté, le widget n'affichera pas le message
La callback | *data-event-willdisplaymessage* pourra prendre en argument un objet complexe de la forme : | {:javascript} |
---|
{ id: [l'id du champ message], type: [le type de message (voir les
valeurs possibles), key: [la clé du message à afficher (voir les valeurs
possibles)], message: [le message] } |
| {code}Valeurs possibles pour le "type" : success, info, error, warn. |
| 4.50 | data-event-willremovemessage | Gestion du retrait du message | - TRUE : le comportement du widget n'est pas modifié, i.e. le widget retirera quand même le message ;
- FALSE : le comportement du widget est impacté, le widget ne retirera pas le message.
La callback pourra prendre en argument un objet complexe de la forme : Bloc de code |
---|
{ id: [l'id du champ message] } |
|
| 4.50 |
L'ensemble des valeurs possibles pour la propriété "state" des objets passés en paramètre par les callback : Identifiant de l'état | Description | Final |
---|
PAYMENT_METHODS_LIST | La session de paiement est valide et la liste des moyens de paiement est affiché. | Non | PAYMENT_CANCELED | La session a été invalidée à la demande du commerçant et un message d'échec est affiché. | Oui | PAYMENT_SUCCESS | La session de paiement est terminée et un ticket est affiché. | Oui | PAYMENT_FAILURE | La session de paiement est terminée et un message d'échec est affiché. | Oui | PAYMENT_FAILURE_WITH_RETRY | La session de paiement est terminée, un message d'échec est affiché accompagné d'un bouton proposant d'utiliser un autre moyen de paiement. | Non | TOKEN_EXPIRED | La session de paiement est terminée, un message d'échec est affiché indiquant l'expiration de la session de paiement. | Oui | BROWSER_NOT_SUPPORTED | Le navigateur est détecté comme incompatible, un écran propose à l'acheteur de basculer sur les pages de paiement classiques. | Oui |
|