Search Overlay

Gérer un événement

S’abonner à des événements de champ

Cette fonction est utilisée pour s’abonner aux événements émis par un ou plusieurs champs Paysafe.js.

La signature de la fonction est la suivante :

instance.fields(fieldname).on(events, function(instance, event) {
...

})

La signature de la fonction contient les paramètres suivant :

ParamètreRequisTypeDescription

events

truestring

Un nom d’événement ou une liste de noms d’événements séparés par des espaces auxquels s’applique l’écouteur :

  • Focus
  • Blur
  • Valid
  • Invalid
  • FieldValueChange
  • InvalidCharacter

Ce paramètre n’est pas sensible à la casse.

fieldnametruestring

Le champ – ou les champs séparés par des espaces – produisant des événements auxquels s’abonner :

  • cardNumber
  • cvv
  • expiryDate
  • expiryMonth
  • expiryYear

Ce paramètre est sensible à la casse.

callbacktruefunctionLa fonction de rappel invoquée lorsqu’un événement se produit.
{return}trueobjectLe gestionnaire de champs à partir duquel la méthode a été invoquée.

Voici un exemple :

<html>
...
<body>
<div id="cardNumber" paysafe="card-number"></div>
<div id="cvv" paysafe="cvv"></div>
<div id="expiryDate" paysafe="expiry-date"></div>
<script>
let hostedFieldInstance;
paysafe.fields.setup("my Base64 encoded single-use-token API key", options)
.then(instance => {
hostedFieldInstance = instance;
return hostedFieldInstance.show();
}).then(paymentMethods => {
if (paymentMethods.card && !paymentMethods.card.error) {
hostedFieldInstance.fields("cvv cardNumber expiryDate").on("Focus Blur", function(instance, event) {
this.style.borderColor = event.type === "Focus" ? "green" : initialcolor;
});
}
}).catch(error => {
console.log(error);
});
</script>
</body>
</html>

Exemple de Async Await

<html>
...

<body>
<div id="cardNumber" paysafe="card-number"></div>
<div id="cvv" paysafe="cvv"></div>
<div id="expiryDate" paysafe="expiry-date"></div>
<script>
initializeJs();

async function initializeJs() {
try {
const hostedFieldInstance = await paysafe.fields.setup("my Base64 encoded single-use-token API key", options);
const paymentMethods = await hostedFieldInstance.show();

if (paymentMethods.card && !paymentMethods.card.error) {
hostedFieldInstance.fields("cvv cardNumber expiryDate").on("Focus Blur", function (instance, event) {
this.style.borderColor = event.type === "Focus" ? "green" : initialcolor;
});
}
} catch (error) {
console.log(error);
}
}
</script>
</body>

</html>

Les événements pris en charge sont énumérés ci-dessous :

ÉvénementDescription

Focus

Un champ a été sélectionné et est prêt à recevoir des données.
BlurUn champ a été désélectionné.
ValidUn champ contient maintenant une valeur valide.
InvalidUn champ ne contient pas de valeur valide.
FieldValueChangeLe client a modifié la valeur d’un champ.
InvalidCharacterLe client a tenté de saisir un caractère qui n’est pas accepté par ce champ (p. ex. un caractère alphabétique).

Autre méthode pour s’abonner aux événements

Vous pouvez également vous abonner à des événements en utilisant la syntaxe alternative présentée dans la signature de fonction ci-dessous :

instance.fields.<fieldname>.on(events, function(instance, event) {
...

})

Remplacez <fieldname> par une seule valeur de la liste ci-dessous :

  • cardNumber
  • cvv
  • expiryDate
  • expiryMonth
  • expiryYear

Les noms ci-dessus sont sensibles à la casse.

Le reste de la fonction a la même syntaxe que la syntaxe standard; par exemple :

<html>
...
<body>
<div id="cardNumber" paysafe="card-number"></div>
<div id="cvv" paysafe="cvv"></div>
<div id="expiryDate" paysafe="expiry-date"></div>
<script>
let hostedFieldInstance;
paysafe.fields.setup("my Base64 encoded single-use-token API key", options)
.then(instance => {
hostedFieldInstance = instance;
return hostedFieldInstance.show();
}).then(paymentMethods => {
if (paymentMethods.card && !paymentMethods.card.error) {
hostedFieldInstance.fields.cvv.on("Focus Blur", function(instance, event) {
this.style.borderColor = event.type === "Focus" ? "green" : initialcolor;
});
}
}).catch(error => {
console.log(error);
});
</script>
</body>
</html>

Le reste de la fonction a la même syntaxe que la syntaxe standard; par exemple :

<html>
...
<body>
<div id="cardNumber" paysafe="card-number"></div>
<div id="cvv" paysafe="cvv"></div>
<div id="expiryDate" paysafe="expiry-date"></div>
<script>
let hostedFieldInstance;
paysafe.fields.setup("my Base64 encoded single-use-token API key", options)
.then(instance => {
hostedFieldInstance = instance;
return hostedFieldInstance.show();
}).then(paymentMethods => {
if (paymentMethods.card && !paymentMethods.card.error) {
hostedFieldInstance.fields.cvv.on("Focus Blur", function(instance, event) {
this.style.borderColor = event.type === "Focus" ? "green" : initialcolor;
});
}
}).catch(error => {
console.log(error);
});
</script>
</body>
</html>

Async Await example

<html>
...
<body>
<div id="cardNumber" paysafe="card-number"></div>
<div id="cvv" paysafe="cvv"></div>
<div id="expiryDate" paysafe="expiry-date"></div>
<script>
initializeJs();

async function initializeJs() {
try {
const hostedFieldInstance = await paysafe.fields.setup("my Base64 encoded single-use-token API key", options);
const paymentMethods = await hostedFieldInstance.show();

if (paymentMethods.card && !paymentMethods.card.error) {
hostedFieldInstance.fields("cvv cardNumber expiryDate").on("Focus Blur", function (instance, event) {
this.style.borderColor = event.type === "Focus" ? "green" : 'red';
});
}
} catch (error) {
console.log(error);
}
}

</script>
</body>

</html>

S’abonner à des événements d’instance

Cette fonction est utilisée pour s’abonner aux événements émis par l’instance Paysafe.js. La signature est la suivante :

instance.on(events, function(instance, event) {
...

})

La signature de la fonction contient les paramètres suivant :

ParamètreRequisTypeDescription

events

truestring

Un nom d’événement ou une liste de noms d’événements séparés par des espaces auxquels s’applique l’écouteur, soit :

  • Soumettre
  • CardBrandRecognition
  • BadBin
  • UnsupportedCardBrand

Ce paramètre est sensible à la casse.

callbacktruefunction

La fonction de rappel invoquée lorsqu’un événement se produit.

{return}trueobjectL’instance à partir de laquelle la méthode a été invoquée.

An example is shown below:

<html>
...
<body>
<div id="cardNumber" paysafe="card-number"></div>
<div id="cvv" paysafe="cvv"></div>
<div id="expiryDate" paysafe="expiry-date"></div>
<script>
let hostedFieldInstance;
paysafe.fields.setup("my Base64 encoded single-use-token API key", options)
.then(instance => {
hostedFieldInstance = instance;
return hostedFieldInstance.show();
}).then(paymentMethods => {
if (paymentMethods.card && !paymentMethods.card.error) {
hostedFieldInstance.on("Submit", function(instance, event) {
document.getElementById("pay-button").disabled = instance.areAllFieldsValid();
});
}
}).catch(error => {
console.log(error);
});
</script>
</body>
</html>

Async Await Example

<html>
...
<body>
<div id="cardNumber" paysafe="card-number"></div>
<div id="cvv" paysafe="cvv"></div>
<div id="expiryDate" paysafe="expiry-date"></div>
<script>
initializeJs();

async function initializeJs() {
try {
const hostedFieldInstance = await paysafe.fields.setup("my Base64 encoded single-use-token API key", options);
const paymentMethods = await hostedFieldInstance.show();

if (paymentMethods.card && !paymentMethods.card.error) {
hostedFieldInstance.on("Submit", function(instance, event) {
document.getElementById("pay-button").disabled = instance.areAllFieldsValid();
});
}
} catch (error) {
console.log(error);
}
}
</script>
</body>
</html>

Les événements d’instance pris en charge sont énumérés ci-dessous :

ÉvénementDescription

CardBrandRecognition

La marque de la carte est reconnue à partir du numéro de carte saisi.
SoumettreLe client a appuyé sur « Entrée » alors que l’un des champs est focalisé.
BadBinLa marque de la carte est activée pour la récupération des transactions et il y a un risque que la transaction soit refusée.
UnsupportedCardBrandLa marque de la carte n’est pas configurée pour le compte marchand.

Callback

La fonction de rappel a la signature suivante :

function callback(instance, event) {
...

}

La signature de la fonction contient les paramètres suivant :

ParamètreRequisTypeDescription

instance

trueobjectInstance Paysafe.js dans laquelle l’événement s’est produit.
événementtrueobjectInformations sur l’événement.
événement
typetruestringType/name de l’événement.
targettrueobjectL’élément du champ Paysafe.js qui a provoqué l’événement.
datatrueobjectInformations sur l’état du champ.
target
fieldNametruestringNom du champ de l’élément Paysafe.js.
containerElementtrueHTMLElementConteneur HTML de l’iframe.
data
isEmptytrueboolean« true » si la valeur du champ est vide.
cardBrandtruestring

Type de carte s’il est reconnu, ou non défini s’il ne l’est pas.

Types de cartes pris en charge :

  • American Express
  • Mastercard
  • Visa
  • Diners Club
  • JCB
  • Maestro
declineRatetruenumberLe risque de refus de la banque de cette marque particulière en pourcentage
salvageFlowtruebooleansi le flux de récupération est supérieur au seuil configuré pour le marchand.
{return}falseanyAucun comportement spécifique n’est associé à la valeur de retour.
{context}trueHTMLElementLe conteneur iframe du champ dans lequel l’événement s’est produit.

Liste des erreurs rencontrées lors de l’inscription à des événements :

CodeMessage affichéMessage détailléDescription

9005

Une erreur s’est produite (9005); veuillez contacter notre service de soutien.Les événements doivent être des chaînes.Le paramètre « events » fourni n’est pas une chaîne.
9008Une erreur s’est produite (9008); veuillez contacter notre service de soutien.Configuration des événements manquants.Aucun événement n’est spécifié, ou les événements sont une chaîne vide ou ne contiennent que des espaces.
9009Une erreur s’est produite (9009); veuillez contacter notre service de soutien.L’événement portant le nom ${eventName} n’est pas pris en charge. 
9102Une erreur s’est produite (9102); veuillez contacter notre service de soutien.Échec de la requête de recherche du NIB.