Hosted Tokenization Page

- Déléguez la gestion des données sensibles à nous pour être conforme à la norme PCI
- Adaptation visuelle flexible et facile & personnalisation
- Facilitez les futurs achats et les paiements Card On File pour vos clients !
Get started
To process transactions on our platform with this solution, make sure that
- You have an account on our platform
- At least one of our available payment methods is activated in the Merchant Portal via Entreprise > Moyens de paiement.
Are you using the Back Office?
You can check the payment method’s activation status via Configuration > Activation PM. - You have configured your API Key and API Secret in your account
- Your server can process server-to-server request via our RESTful API. Using one of our Server SDKs will greatly ease this task
Are you all set? Then learn how to use our Hosted Tokenization Page in the next chapter!

Comment ça fonctionne
Avant de traiter des transactions en production, utilisez notre environnement de test. Découvrez notre solution sans frais ni engagements ! Une fois que vous souhaitez passer en production, consultez ici comment obtenir un compte de production ou contactez-nous !
- La Hosted Tokenization Page fonctionne uniquement en conjonction avec la méthode d'intégration Server-to-server, qui est une étape indispensable dans le flux de paiement. Par conséquent, cela nécessite d'inclure au moins les propriétés 3-D Secure obligatoires dans votre demande de paiement.
- Hosted Tokenization Page vous permet de traiter des transactions avec des tokens temporaires. Si vous souhaitez convertir des tokens temporaires en alias pour les Card On File, assurez-vous que l'option "Alias Manager (RECX)" est active dans votre compte (Configuration > Compte > Vos options).
Ciblez l'URL de base de l'API la plus à jour
Nous vous encourageons à toujours cibler l'URL de base de l'API la plus à jour lors de l'envoi de requêtes à notre plateforme. Consultez notre guide dédié pour un aperçu complet.
Pour vous permettre une transition en douceur, les anciennes URL de base de l'API restent disponibles jusqu'à nouvel ordre.
Modes d'intégration
1Utilisez nos SDK
Utilisez nos SDK serveur pour connecter de manière transparente votre environnement serveur à l'API serveur de notre platforme. Ces SDK simplifient la fonctionnalité de l'API avec des objets faciles à utiliser - spécifiques à la plateforme.






2Utilisez nos plugins
Nos plugins offrent un lien entre votre boutique en ligne et notre plateforme. En encapsulant efficacement notre API RESTful, ces plugins vous font gagner du temps dans l'écriture de code et rendent l'intégration rapide et facile.













Étapes d'intégration
Vos clients doivent fournir leur numéro de carte de crédit à un moment donné lors de leur parcours sur votre boutique en ligne. En tant que commerçant, le plus grand défi est de lier toutes les étapes de ce parcours en une expérience fluide. En même temps, vous devez vous assurer du transfert sécurisé des données de vos clients vers les institutions financières qui gèrent ces données.
Par conséquent, vous pouvez soit :
- Déléguer complètement les précautions de sécurité nécessaires (en utilisant notre solution Hosted Checkout Page). Cependant, cette méthode a ses limites : vos clients remarqueront une redirection vers une URL externe - une interruption notable dans le flux de paiement.
- Collecter les données sensibles par vous-même (en utilisant notre solution Server-to-server). Mais cela nécessite de respecter les exigences PCI les plus strictes - ce qui implique beaucoup d'efforts.
Notre Hosted Tokenization Page résout ce dilemme pour vous en combinant le meilleur des deux mondes :
- Laissez-nous gérer les données de carte de crédit sans que vos clients ne s'en aperçoivent. Ajoutez simplement un
<iframe>
à votre boutique en ligne contenant le formulaire de paiement. Étant l'hôte, les données sensibles viennent et restent de notre côté ! Nous échangeons le numéro de carte de paiement réel contre un token qui n'est pas soumis à la norme PCI. - Utilisez ce token de paiement pour la demande de paiement réelle via la méthode d'intégration Server-to-server .
- En même temps, intégrez-le harmonieusement dans l'apparence et la convivialité de votre boutique en ligne . Adaptez complètement le formulaire de paiement à votre guise !
Notre Hosted Tokenization Page fonctionne avec toutes les méthodes de paiement par carte.
Les chapitres suivants fournissent un aperçu général d'un flux typique. Ils décrivent toutes les étapes à suivre pour traiter les transactions de Hosted Checkout Page. Trouvez un aperçu détaillé incluant des étapes optionnelles, l'authentification 3-D Secure, etc. dans le chapitre dédié.
- Créer une page de paiement & configurer la politique de sécurité du contenu
- Initialiser le SDK serveur
- Créer une session de tokenisation hébergée & ajouter un iframe à la page de paiement
- Soumettre & tokeniser les détails de la carte
- Envoyer une demande CreatePayment
- Traiter la réponse de la plateforme
- Obtenir & afficher le résultat de la transaction
Créer une page de paiement & configurer la politique de sécurité du contenu
Notre solution Hosted Tokenization Page nécessite que votre page de paiement implémente
- Des éléments HTML/JavaScript spécifiques
- Une politique de sécurité du contenu
Ajoutez les éléments HTML/JavaScript suivants sur votre page de paiement :
<div id="div-hosted-tokenization"></div>
<button onclick="submitForm()">soumettre</button>
<script src="https://payment.preprod.direct.worldline-solutions.com/hostedtokenization/js/client/tokenizer.min.js"></script> <!-- contient les méthodes nécessaires à la tokenisation -->
<script>
// pour tokeniser les données de carte de crédit. Chargez-le dans le formulaire dans un élément DOM existant sur votre page de paiement
var tokenizer = new Tokenizer(hostedTokenizationUrl, 'div-hosted-tokenization', {hideCardholderName: false });
tokenizer.initialize().then(() => {
// Faites le travail après l'initialisation, le cas échéant
})
.catch(reason => {
// Gérer l'erreur de chargement de l'iFrame
})
function submitForm(){ //
tokenizer.submitTokenization().then((result) => {
if (result.success) {
// Procéder
} else {
// displayErrorMessage(result.error.message);
}
});
}
</script>
Les éléments individuels remplissent un rôle spécifique pendant le flux de paiement :
Élément |
Description |
<div id="div-hosted-tokenization"></div> |
Appeler la fonction initialize() ajoute un <iframe> à cet élément <div>. En même temps, l'<iframe> ouvre l'hostedTokenizationUrl que vous avez demandée précédemment via une demande CreateHostedTokenization. L'<iframe> charge une page hébergeant le masque de paiement que vos clients utilisent pour entrer leurs données sensibles au PCI-DSS. Vous pouvez personnaliser librement les éléments de cet <iframe>. Suivez les instructions dans ce chapitre dédié pour apprendre à créer et à télécharger le modèle. |
<button onclick="submitForm()">soumettre</button> function submitForm() |
Appeler la fonction submitForm() soumet les données de la carte depuis l' <iframe> à notre plateforme pour la tokenisation. Notre plateforme retourne un hostedTokenizationId unique pour chaque session. Utilisez cet hostedTokenizationId pour créer le paiement réel dans une demande CreatePayment ultérieure. |
var tokenizer |
L'instance de la classe Tokenizer fournissant toutes les fonctionnalités dont vous avez besoin pour le processus de paiement, c'est-à-dire :
|
Politique de sécurité du contenu
Si vous avez mis en place une politique de sécurité du contenu pour votre site web, vous devez mettre nos domaines sur liste blanche. Cela permettra de charger le fichier tokenizer et de nous laisser capturer ses logs.
Pour ce faire, ajoutez le domaine https://payment.preprod.direct.worldline-solutions.com/ aux directives script-src, connect-src et frame-src de votre définition de politique de sécurité du contenu.
Initialiser le SDK serveur
Initiez le SDK serveur en définissant les URLs de connexion, votre PSPID sur notre plateforme et votre API Secret/Key. Lisez la documentation de votre SDK préféré pour en savoir plus.
URLs des API endpoints en test / production
- URL API endpoints TEST : https://payment.preprod.direct.worldline-solutions.com/v2/MERCHANT_ID/hostedtokenizations
- URL API endpoints LIVE : https://payment.direct.worldline-solutions.com/v2/MERCHANT_ID/hostedtokenizations
Si vous utilisez nos SDK serveur, votre application doit cibler l'URL de l'environnement / méthode d'intégration respective via des instances de CommunicatorConfiguration/ IClient/ CreateHostedTokenizationRequest. Des informations détaillées sur la façon de procéder sont disponibles dans les chapitres suivants, y compris des exemples de code complets.
When processing online transactions, keeping track of your conversion rate is paramount. We are eager to help you with this, via our MyPerformance tool or via our transaction databases our customer support team is happy to share with you.
To ensure we can provide you with the most precise conversion rate data, we highly recommend the following best practices:
- When submitting a transaction request to our platform, always send the customer email address order.customer.contactDetails.emailAddress.
- When resubmitting a transaction request to our platform for a unique order (i.e. after having received a status.statusOutput=2 during the first try), always send the same order.references.merchantReference from your first try.
Créer une session de tokenisation hébergée & ajouter un iframe à la page de paiement
Vous envoyez une demande CreateHostedTokenization à notre plateforme. Notre plateforme renvoie un hostedTokenizationURL.
appelez la fonction initialize() depuis l'extrait de code Javascript. Assurez-vous de passer le hostedTokenizationURL comme valeur pour l'argument tokenisationURL de l'instance Tokenizer. Ce faisant, un <iframe> hébergeant le masque de paiement est automatiquement ajouté à l'élément HTML <div id="div-hosted-tokenization"></div>. L' <iframe> ouvre automatiquement le hostedTokenizationURL.
Soumettre & tokeniser les détails de la carte
Vos clients saisissent leurs informations de carte dans l' <iframe> sur votre page de paiement. Notre plateforme détecte automatiquement le schéma de la carte dès que vos clients commencent à taper le numéro. Cela fonctionne également pour les cartes co-brandées (le cas échéant).
Vos clients soumettent les données de la carte à notre plateforme via l'élément JavaScript <button> , invoquant la fonction submitTokenization() de l'extrait de code JavaScript. Notre plateforme tokenise les données de la carte et renvoie un hostedTokenizationId.
Envoyer une demande CreatePayment
Vous envoyez une demande CreatePayment à notre plateforme via notre méthode d'intégration Server-to-server, en incluant les détails de la carte et les propriétés 3-D Secure obligatoires. Remplacez les données sensibles de la carte dans la propriété de la carte par le hostedTokenizationId.
Traiter la réponse de la plateforme
Notre plateforme envoie une réponse contenant un objet merchantAction.
Elle vous indique comment procéder avec le paiement. Selon la réponse, ces scénarios sont possibles :
- Cinématique d'authentification frictionless ou passive 3-D Secure : (merchantAction.actionType=null) : Vos clients utilisent une carte inscrite au 3-D Secure. Les propriétés 3-D Secure dans votre requête CreatePayment s'avèrent suffisantes pour l'étape d'authentification. Nous soumettons la transaction à l'acquéreur et fournissons le résultat dans la propriété statusOutput.statusCode.
- cinématique d'authentification forte 3-D Secure : (merchantAction.actionType="REDIRECT") : Vos clients utilisent une carte inscrite au 3-D Secure. Ils doivent s'identifier en tant que détenteur légitime de la carte. Redirigez-les vers leur émetteur via le merchantAction.redirectData.redirectURL. Définissez une cardPaymentMethodSpecificInput.returnUrl dans la requête CreatePayment initiale pour vous assurer que vos clients sont redirigés vers votre boutique en ligne par la suite.
- Pas d'authentification 3-D Secure (merchantAction.actionType=null) : Vos clients utilisent une carte non inscrite au 3-D Secure. Nous soumettons la transaction à l'acquéreur et fournissons le résultat dans la propriété statusOutput.statusCode.
Obtenir & afficher le résultat de la transaction
Êtes-vous en train de migrer de l'ancien système vers Direct ?
Contrairement à l'ancien système, notre plateforme n'envoie pas de notifications par e-mail pour les commandes Direct traitées ou les mises à jour de statut.
Utilisez les webhooks pour recevoir des notifications sur les mises à jour de statut des transactions. En fonction du résultat, implémentez un mécanisme sur votre serveur pour envoyer des e-mails à votre/vos clients. Cela vous permettra de personnaliser le contenu, le moment et de sélectionner les mises à jour de statut pour lesquelles vous souhaitez envoyer des e-mails.
En savoir plus sur la migration des fonctionnalités héritées vers Direct dans notre guide dédié.
Selon le scénario, l'obtention et l'affichage du résultat de la transaction / 3-D Secure diffère :
Cinématique Frictionless/Pas d'authentification 3-D Secure
Vos clients restent sur votre boutique en ligne. Adaptez la page de paiement de votre boutique en ligne selon le statusOutput.statusCode tel que retourné par la requête initiale CreatePayment.
Cinématique Challenge
Nous recevons le résultat de la transaction / 3-D Secure et redirigeons vos clients vers votre boutique en ligne. Définissez un cardPaymentMethodSpecificInput.returnUrl dans la requête initiale CreatePayment pour cette redirection. Assurez-vous d'implémenter un mécanisme sur ce returnUrl qui notifie votre serveur de cette redirection. Dès réception de cette notification, envoyez une requête GetPaymentDetails pour obtenir le résultat de la transaction. Utilisez le payment.id de la requête initiale CreatePayment :
Adaptez le returnUrl en fonction du statusOutput.statusCode tel que retourné par cette requête GetPaymentDetails.
Découvrez dans notre guide des statuts plus d'informations sur les propriétés de la réponse, leur signification et comment procéder de manière appropriée en fonction du statut des transactions.
Vous pouvez également recevoir le résultat de la transaction / 3-D Secure via les webhooks. Notez que les webhooks sont des événements asynchrones. Par conséquent, ils ne conviennent pas pour gérer des événements en temps réel pendant le processus de paiement.
Flux
Trouvez un flux de transaction complet impliquant chaque partie et les étapes (facultatives) dans cet aperçu :
- Vos clients se rendent sur votre page de paiement et finalisent l'achat.
- Vous envoyez une demande CreateHostedTokenization à notre plateforme. Notre plateforme renvoie un hostedTokenizationURL.
- Vous ajoutez l' <iframe> hébergeant le masque de paiement à votre page de paiement.
- Vos clients saisissent leurs informations de carte dans l' <iframe>.
4'(facultatif). Vous utilisez notre fonction de validation pour vérifier si le titulaire de la carte a correctement rempli le formulaire. - Vos clients soumettent les données de la carte à notre plateforme.
- Notre plateforme tokenise les données de la carte et renvoie un hostedTokenizationId.
- Vous envoyez une demande CreatePayment à notre plateforme en utilisant notre méthode d'intégration Server-to-server, y compris les propriétés 3-D Secure obligatoires.
7'(facultatif). Nous effectuons une vérification de prévention des fraudes. - Notre plateforme envoie une réponse contenant un objet merchantAction, vous indiquant comment procéder. Ces scénarios sont possibles :
a) Cinématique Frictionless 3-D Secure (merchantAction.actionType=null). Le flux continue à l'étape 14).
b) Cinématique Challenge 3-D Secure (merchantAction.actionType="REDIRECT"). Le flux continue à l'étape 9).
c) Pas d'authentification 3-D Secure (merchantAction.actionType=null). Le flux continue à l'étape 14). - Vous redirigez le client vers sa banque émettrice pour l'authentification 3-D Secure. Le client s'identifie.
- Notre plateforme reçoit le résultat d'authentification 3-D Secure de l'émetteur. En fonction du résultat, deux scénarios sont possibles :
a) Si l'identification a échoué, nous redirigeons vos clients vers votre returnURL, terminant le flux. Vous demandez/affichez le résultat de la transaction comme décrit à l'étape 13.
b) Si l'identification a réussi, le flux continue à l'étape 11. - Nous traitons la transaction et recevons le résultat de l'acquéreur.
- Nous redirigeons votre client vers votre returnURL.
- Vous demandez le résultat de la transaction à notre plateforme et l'affichez sur votre returnURL/dans votre boutique en ligne.
- Si la transaction a réussi, vous pouvez livrer les biens / services.
14'(facultatif). Supprimez le token si vous ne prévoyez pas de l'utiliser pour des paiements récurrents ou si votre client n'a pas accepté de stocker les informations d'identification.
Advanced customisation
We have designed our Hosted Tokenization Page in a way to allow you to customise it as freely as possible. Take a look at these features:
Create iframe template
The centrepiece of this solution is an iframe containing the payment form. Adapting the iframe to your corporate identity allows you to merge it seamlessly into your webshop. We have designed it in a way that allows you to:
- Adapt its various HTML elements at your liking.
- Use your own .css /image files to further modify the payment form.
Choose language version
Our Hosted Tokenization Page is available in various languages. Populate locale to display it in your customers’ preferred language. The value is a combination language and country:
{
"locale":"en_EN",
/* other properties omitted */
}
We support the following languages:
Language version | locale value | Language version | locale value | |
---|---|---|---|---|
Arabic | ar_AE | Japanese | ja_JP | |
Catalan | ca_ES | Korean | ko_KR | |
Chinese | zh_CN | Lithuanian | lt_LT | |
Croatian | hr-HR | Latvian | lv-LV | |
Czech | cs_CZ | Norwegian | no_NO | |
Danish | dk_DK | Polish | pl_PL | |
Dutch / Flemish | nl_NL nl_BE |
Portuguese | pt_PT | |
English UK / US | en_UK en_US |
Romanian | ro_RO | |
Estonian | et-EE | Russian | ru_RU | |
Finnish | fi_FI | Slovak | sk_SK | |
French | fr_FR | Slovenian | sl_SI | |
German Germany/Austria/Switzerland |
de_DE de_AT de_CH |
Spanish | es_ES | |
Greek | el_GR | Swedish | se_SE | |
Hebrew | he_IL | Turkish | tr_TR | |
Hungarian | hu_HU | |||
Italian | it_IT |
Customise template
We provide two distinct approaches for implementing a customised template:
Method 1: Create a fully customised template
Create a fully customised template from scratch using our powerful Outil de constructions de modèles. This approach offers a high degree of customisation, allowing you to make intricate changes to the payment form's appearance and functionality.
Method 2: Adapt template from GitHub repository
You can also download and customise the necessary files directly from our GitHub repository, providing even more flexibility. It is the ideal solution to let your customers choose between local or global brands (i.e. Visa, MasterCard) if they are using a co-badged credit card.
Once you have created a template that matches your webshop's look and feel, upload it and all necessary .css / image files on our platform. To do so, follow these steps:
- Log in to the Back Office.
- Go to Configuration > Template > File Manager > Upload Template Files. Click on „File...” and select the .html (and if applicable, additional .css / image files).
- After a couple of minutes, our system will have validated the files (In “Uploaded Files”, they appear as “Validated” in column “Status”). They will then be ready to be used on the Hosted Tokenization Page.
Our platform allows you to upload multiple template files. Use the one of your choice by populating property variant with the file name in the CreateHostedTokenization request.
Adapter le style visuel
Appliquez un style CSS aux dimensions de l'iframe pour l'intégrer encore plus harmonieusement dans votre boutique en ligne. Ajoutez ce code à votre fichier .css en conséquence :
iframe[name=htpIframe0] {
border: none;
width: 800px;
}
Gérer le nom du titulaire de la carte
Notre API permet d'afficher ou de masquer le champ du nom du titulaire de la carte dans l'iframe.
Passez le booléen hideCardholderName: true ou le booléen hideCardholderName: false en conséquence dans le constructeur Tokenizer :
var tokenizer = new Tokenizer(hostedTokenizationUrl, 'div-hosted-tokenization', { hideCardholderName: false });
- Si non spécifié, notre plateforme définit hideCardholderName: true par défaut.
- Le nom du titulaire de la carte est obligatoire. Si vous choisissez d'obtenir le nom dans votre environnement de boutique en ligne, assurez-vous de le soumettre au format suivant :
tokenizer.useCardholderName("Wile E. Coyote")
tokenizer.submitTokenization().then((result) => { ... })
Envoyer des arguments supplémentaires au tokenizer
L'appel du tokenizer, comme décrit à l'étape 3, prend des arguments supplémentaires en plus de hideCardholderName. Ajoutez-en un ou plusieurs dans votre demande pour adapter le flux de paiement à vos besoins :
Argument | Description |
---|---|
hideCardholderName | Voir le chapitre dédié. |
hideTokenFields |
Booléen Définir sur true si vous souhaitez préremplir les champs de l'iframe (numéro de carte, nom du titulaire de la carte et date d'expiration) avec les données stockées dans un token pour un paiement récurrent. |
validationCallback | |
paymentProductUpdatedCallback |
Fonction de rappel : Détectez la marque de la carte utilisée au fur et à mesure qu'elle est saisie dans le formulaire de paiement :
|
hideOptionalCvv | |
storePermanently |
Si vous choisissez de conserver ou non le token pour les paiements futurs, stockez ou supprimez un token en envoyant true ou false. |
Utiliser des possibilités supplémentaires
Notre solution Hosted Tokenization Page offre de nombreuses autres possibilités. Découvrez ici toutes ses fonctionnalités disponibles.
Utiliser un token existant
Notre plateforme vous permet de stocker de manière permanente les données de carte de crédit de vos clients pour 1-click payments, pré-remplissant le formulaire de paiement. Cela rendra l'expérience de paiement de vos clients encore plus fluide et améliorera votre taux de conversion !
- Utiliser un token existant pour 1-click payments remplit automatiquement le numéro de carte de crédit et la date d'expiration de vos clients.
- En raison de SCA, vos clients pourraient tout de même devoir entrer leur CVC et/ou passer une vérification d'authentification 3-D Secure. Notre formulaire de paiement affiche les champs obligatoires à remplir automatiquement.
Comme le token existe déjà au moment de la demande de transaction, le flux de paiement est différent :
- Étape 1 : Indiquez à notre plateforme que vous souhaitez utiliser un token existant. Pour ce faire, modifiez la demande createHostedTokenizationRequest en ajoutant la propriété tokens :
-
Une réponse réussie ressemble à ceci :
Status: 200 OK { "hostedTokenizationId": "2f4d08d6ddfc411e944e81c54d824a99", "invalidTokens": [ "86a44668-5d0f-4e3f-a597-2aa0a4d03fe5" ], "hostedTokenizationUrl": "https://payment.preprod.direct.worldline-solutions.com//hostedtokenization/tokenization/form/2f4d08d6ddfc411e944e81c54d824a99",
"partialRedirectUrl": "preprod.direct.worldline-solutions.com//hostedtokenization/tokenization/form/2f4d08d6ddfc411e944e81c54d824a99" }
Si notre réponse contient une valeur pour la propriété invalidTokens, le token envoyé dans votre demande est invalide. Ne l'utilisez pas dans le paiement suivant.
- Étape 2 : Préremplissez le formulaire affiché avec les données de carte de crédit enregistrées. Notre plateforme vous offre deux manières de le faire :
1. Préremplissez le formulaire immédiatement lors de son affichage. Pour cela, ajoutez le token comme quatrième argument au constructeur tokenizer :
var tokenizer = new Tokenizer(hostedTokenizationUrl, 'div-hosted-tokenization', { }, '00164fec-32b2-462e-b48b-84a27930b10c');
2. Laissez le formulaire vide au départ lors de son affichage. Permettez à vos clients de choisir dans votre environnement de boutique en ligne de payer avec leur carte enregistrée. S'ils choisissent de le faire, utilisez la fonction suivante pour peupler le formulaire :
var tokenizer = new Tokenizer(hostedTokenizationUrl, 'div-hosted-tokenization', { });
...
// Plus tard, par exemple lorsque l'action d'un utilisateur déclenche un changement de token
function tokenChanged () {
tokenizer.useToken('00164fec-32b2-462e-b48b-84a27930b10c'); // Change le formulaire pour mettre à jour le token sélectionné, affichant uniquement le champ CVC si nécessaire
// ou
tokenizer.useToken(); // Réinitialise le formulaire pour créer un nouveau token
}
Vous pouvez également permettre à vos clients de mettre à jour le token dans le formulaire de paiement. En initialisant le booléen hideTokenFields comme suit, vos clients peuvent faire l'un ou l'autre.
a) {hideTokenFields:true} : Masquer les champs connus (numéro de carte/date d'expiration).
b) {hideTokenFields:false} : Les champs obligatoires sont visibles et doivent être remplis / les champs connus peuvent être modifiés (uniquement le nom du titulaire de la carte/date d'expiration).
La demande ressemble à ceci :
var tokenizer = new Tokenizer(hostedTokenizationUrl, 'div-hosted-tokenization', {hideTokenFields:true});
Obtenir le statut de validation
Votre page principale peut obtenir le statut de validation du formulaire de paiement à tout moment. Passez une fonction de rappel de validation qui est appelée chaque fois que l'état de validité du formulaire de paiement change. Assurez-vous que cette fonction contient un paramètre qui reçoit un objet avec la propriété booléenne valid. Ce booléen indique si le formulaire est correctement rempli.
Utilisez ces informations pour activer/désactiver le bouton de soumission sur la page principale si le formulaire de paiement est correctement/incorrectement rempli. Ajoutez cette fonction à votre script à l'étape 3 :
var tokenizer = new Tokenizer(hostedTokenizationUrl, 'div-hosted-tokenization', { validationCallback: myValidationCallback });
function myValidationCallback(result) { document.getElementById('btn-submit').disabled = !result.valid }
Supprimer le formulaire
Vous pouvez supprimer le formulaire de paiement de la page principale. L'appel de cette fonction supprime l'iframe et ses écouteurs d'événements :
tokenizer.destroy();
Utiliser tokenId au lieu de hostedTokenizationId
Notre plateforme vous permet de traiter des transactions avec à la fois le hostedTokenizationId et le tokenId. Le flux pour le premier est décrit dans ce chapitre. Utiliser des TokenIDs nécessite de modifier le flux comme suit :
Comme les étapes 1. – 4. et 7. – 12. sont identiques au flux utilisant le hostedTokenizationId, nous les avons seulement ajoutées ici comme des éléments de base. Consultez le chapitre dédié pour plus de détails.
- Une demande de paiement est initiée.
- Obtenez une URL de tokenisation valide via un appel Create Hosted Tokenization.
- Ajoutez un extrait de code à votre page de paiement, vous permettant d'afficher le formulaire de tokenisation avec l'URL de tokenisation valide en tant qu'iframe sur votre page de paiement.
- Votre client saisit ses données de carte de crédit dans l'iframe.
- Obtenez le token pour le paiement réel.
Récupérez le résultat de la tokenisation en effectuant un appel GetHostedTokenization depuis votre backend.
Utilisez l'exemple de code suivant pour la demande :
Pour les demandes à notre environnement TEST : https://payment.preprod.direct.worldline-solutions.com/v2/MERCHANT_ID/hostedtokenizations/hostedTokenizationId
Pour les demandes à notre environnement LIVE : https://payment.direct.worldline-solutions.com/v2/MERCHANT_ID/hostedtokenizations/hostedTokenizationId
- Créez le paiement réel avec le token. Envoyez une demande CreatePayment à notre serveur. Utilisez l'exemple de code suivant pour la demande :
- Vous redirigez vos clients vers leur banque émettrice pour une vérification 3-D Secure. Les clients s'identifient.
- Notre système reçoit le résultat de l'émetteur.
- Nous soumettons la transaction financière réelle à l'acquéreur pour qu'elle soit traitée.
- Nous redirigeons votre client vers votre ReturnUrl.
- Vous demandez le résultat de la transaction à notre plateforme via GetPaymentDetails ou recevez le résultat via webhooks.
- Si la transaction a réussi, vous pouvez livrer les biens / services.
12' (facultatif) : Supprimez le token.
Obtenir la politique de confidentialité
Vous pouvez utiliser GetPrivacyPolicy pour obtenir le cadre légal de toute méthode de paiement que vous proposez, vous soulageant de l'effort de fournir et de maintenir votre propre politique de confidentialité.
Pré-sélectionner les schémas de carte disponibles
Vous pouvez exclure ou pré-sélectionner des schémas de carte spécifiques depuis l'iframe en utilisant les propriétés de l'objet paymentProductFilters dans votre demande CreateHostedTokenization :
- exclude.products : Tableau de paymentProductIds à filtrer
- restrictTo.products : Tableau de paymentProductIds qui devraient être disponibles
trouvez la valeur pour les paymentProductIds individuels dans la colonne "Identifiant du moyen de paiement" de cet aperçu.
- Trouvez des informations détaillées sur cet objet et ses propriétés dans notre CreateHostedTokenizationAPI.
exclude
remplacera toute valeur dansrestrictTo
et assurera ainsi l'exclusion.- Si vos clients saisissent un numéro d'un schéma de carte que vous avez rendu indisponible via
exclude
, le masque de paiement affichera "Numéro de carte incorrect ou incompatible".
Gérer le Code de Vérification de la Carte
En raison des réglementations PCI DSS, nous ne sommes autorisés à stocker la valeur de vérification d'une carte (CVV/CVC) que pour un maximum de deux heures.
Pour des paiements uniques via la Hosted Tokenization Page, cette durée est suffisante pour initialiser le paiement. Cependant, lors du traitement de paiements récurrents utilisant des tokens stockés de manière permanente, vous rencontrerez le scénario suivant : pour tout paiement ultérieur, notre plateforme préremplit les champs de l'<iframe> - à l'exception du code CVC en raison de cette réglementation.
Pour améliorer encore l'expérience de paiement de vos clients, notre plateforme vous permet de rendre la vérification CVC optionnelle. Cela s'applique à la fois au
- Paiement initial lors de la création du token.
- Paiement ultérieur lors de l'utilisation du token.
Vous pouvez y parvenir en mettant en œuvre les propriétés suivantes dans votre page de paiement / demande CreateHostedTokenization respectivement :
Propriété | Description |
---|---|
creditCardSpecificInput.ValidationRules cvvMandatoryForNewToken cvvMandatoryForExistingToken |
cvvMandatoryForNewToken : Défini sur "true" ou "false" dans votre demande pour permettre à vos clients d'entrer le CVC dans le <iframe> formulaire de paiement ou non. cvvMandatoryForExistingToken : Défini sur "true" ou "false" dans votre demande pour permettre à vos clients d'entrer le CVC dans le <iframe> formulaire de paiement ou non. Applicable uniquement lors de l'utilisation de tokens existants et donc remplissant le formulaire de paiement. |
hideOptionalCvv | argument Tokenizer utilisé pour initialiser l'<iframe> sur votre page de paiement.
Définissez sur "true" ou "false" selon que vous souhaitez garder/masquer le champ "Code de vérification de la carte" dans le formulaire de paiement. |
Lorsque vous envoyez "false" pour la propriété cvvMandatoryForNewToken/cvvMandatoryForExistingToken, la vérification de validation déclenchera un événement de validation de formulaire réussi même lorsque le CVC n'est pas ajouté à l'iframe. Cela vous permet de continuer avec le flux de paiement en envoyant la demande de paiement réelle.
Pour les demandes CreatePayment envoyées sans le hostedTokenizationId, notre plateforme prend en compte si le CVC est obligatoire pour la méthode de paiement. Contactez-nous pour configurer la ou les méthodes de paiement respectives pour vous dans votre compte. Pour remplacer ce paramètre par session, nous recommandons fortement d'envoyer le hostedTokenizationId au lieu du token dans votre demande CreatePayment.
Assurez-vous de vous accorder avec votre acquéreur si vous souhaitez rendre la vérification du CVC optionnelle ou la sauter complètement. Dans certains cas, vous pourriez devenir responsable des impayés.