MoneyInWebInit : crédit de compte de paiement avec carte bancaire, mode indirect
Version | Description |
---|---|
1.0 | |
1.2 | Sortie supplémentaire : ID de transaction |
1.3 | Sortie supplémentaire : ID de la carte si enregistrement demandé |
Comment cela fonctionne ?
Cette fonctionnalité permet à la MARQUE BLANCHE d'utiliser les pages web de notre service d'acquisition carte.
Par défaut, tous les paiements sont automatiquement validés. Il est possible de demander à configurer votre environnement pour que tous vos paiements soit différés et nécessitent une validation (avec MoneyInValidate).
Cette fonctionnalité nécessitera 3 points d'intégration par la MARQUE BLANCHE :
- Un appel au DIRECTKIT pour initialiser les données du rechargement de compte de paiement
- L'application MARQUE BLANCHE envoie à LEMONWAY l'identifiant du compte de paiement, un token de requête qui lui permettra de traiter la réponse du WEBKIT, et le montants (de la transactions et des commissions de la MARQUE BLANCHE)
- LEMONWAY retourne un token de money-in
- Une redirection du site web de la MARQUE BLANCHE vers le WEBKIT
- Le site web de la MARQUE BLANCHE redirige le CLIENT vers le WEBKIT de LEMONWAY, en passant le token de money-in en paramètre GET. (Voir Finalisation du crédit de compte de paiement en mode indirect)
- Le site web de la MARQUE BLANCHE redirige le CLIENT vers le WEBKIT de LEMONWAY, en passant le token de money-in en paramètre GET. (Voir Finalisation du crédit de compte de paiement en mode indirect)
- Une page de retour sur laquelle le WEBKIT POST le résultat :
returnUrl
pour les paiements en succèscancelUrl
en cas d'annulation de paiementerrorUrl
pour les erreurs
Ces 3 URLs doivent être accessibles publiquement de façon à ce que le client final et notre WEBKIT puissent y effectuer des requêtes.
Requête
XML
<MoneyInWebInit xmlns="Service_mb">
<wlLogin>string</wlLogin>
<wlPass>string</wlPass>
<language>string</language>
<version>string</version>
<walletIp>string</walletIp>
<walletUa>string</walletUa>
<wallet>string</wallet>
<amountTot>string</amountTot>
<amountCom>string</amountCom>
<comment>string</comment>
<useRegisteredCard>string</useRegisteredCard>
<wkToken>string</wkToken>
<returnUrl>string</returnUrl>
<cancelUrl>string</cancelUrl>
<errorUrl>string</errorUrl>
<autoCommission>string</autoCommission>
<registerCard>string</registerCard>
<isPreAuth>string</isPreAuth>
<email>string</email>
<delayedDays>string</delayedDays>
<label>string</label>
<moneyInNature>string</moneyInNature>
</MoneyInWebInit>
JSON
{
"wlLogin":"string",
"wlPass":"string",
"language":"string",
"version":"string",
"walletIp":"string",
"walletUa":"string",
"wallet":"string",
"amountTot":"string",
"amountCom":"string",
"comment":"string",
"useRegisteredCard":"string",
"wkToken":"string",
"returnUrl":"string",
"cancelUrl":"string",
"errorUrl":"string",
"autoCommission":"string",
"isPreAuth":"string",
"email":"string",
"delayedDays":"string",
"label":"string",
"moneyInNature":"string"
}
Element | Description | Requis | Format | Exemple |
---|---|---|---|---|
wallet | Identifiant du compte de paiement à créditer Ne peut pas être SC | Oui | [0 : 256] car | 33612345678 ou taxi67 |
amountTot | Montant à débiter de la carte | Oui | 2 décimales | 15.00 |
amountCom | Montant que la MARQUE BLANCHE souhaite prélever | Non | 2 décimales | 1.00 |
comment | Commentaire concernant la transaction | Non | [0 :140] car | Commande numéro 245 |
useRegisteredCard | 0 : ne pas enregistrer de carte ni utiliser de carte enregistrée Uniquement disponible avec Payline. | Non (0 par défaut) | [0 :1] car | 0 |
wkToken | Identifiant unique de l'appel, créé par le système de la MARQUE BLANCHE, sera retourné par LEMONWAY à la fin de l'opération, en POST sur l'URL de retour fournie par la MARQUE BLANCHE | Oui | [1 : 50] car | 5652772 |
returnUrl | url de retour sur le site de la MARQUE BLANCHE, que le WEBKIT appellera pour signifier la fin de l'opération | Oui | [1 : max] car | |
errorUrl | url de retour sur le site de la MARQUE BLANCHE, que le WEBKIT appellera pour signaler une erreur | Oui | [1 : max] car | |
cancelUrl | url de retour sur le site de la MARQUE BLANCHE, que le WEBKIT appellera en cas d'annulation de l'opération | Oui | [1 : max] car | |
autoCommission | Si oui :
| Non | [1] car | 0 : non (par défaut) |
registerCard | Enregistre la carte pour des paiements futurs. Comme avec la méthode RegisterCard, les futurs paiements pourront être initiés avec MoneyInWithCardId | Non | [1] car | 0 : non (par défaut) |
isPreAuth | Indiquer s'il ne s'agit que d'une pré-autorisation qui devra être validée
Uniquement disponible avec Transactpro, Atos V2 et Payzen | Non | [1] car | 0 : non (par défaut) 1 : oui |
Indiquer l'email du client, si c'est pas déjà indiquer dans le compte de paiement Uniquement disponible avec Transactpro. Paramètre obligatoire pour faire un paiement avec transactpro | Non | [0 : 256] car | client@exemple.com | |
delayedDays | Indiquer le nombre de jours du paiement différé entre 0 et 6 jours pour un paiement garantie Uniquement disponible avec Transactpro, Atos V2 et Payzen | Non | 1 car | 3 |
label | Indiquer le nom de la boutique sur la page de paiement. Uniquement disponible avec Payzen | Non | [1] car | exemple.com |
moneyInNature | Indiquer la nature de l'activité pour ce moneyIn : 0 : activité 1 | Non | [1] car | 0 : non (par défaut) |
Réponse
XML
<?xml version="1.0" encoding="utf-8"?>
<MONEYINWEB>
<TOKEN>String</TOKEN>
<ID>String</ID>
<CARD>
<ID>string</ID>
</CARD>
<REDIRECTURL>String</REDIRECTURL>
</MONEYINWEB>
JSON
{
"MONEYINWEB":
{
"TOKEN":"String",
"ID":"String",
"CARD":
{
"ID":"string"
},
"REDIRECTURL":"String"
}
}
Version | Element | Description | Exemple |
---|---|---|---|
1.0 | TOKEN | Token de paiement à passer en GET vers l'URL du webkit | 1wGaBwkdOmOxWT0s4t1Z1364815798094 |
>= 1.2 | ID | Identifiant de la transaction | 213 |
>=1.3 | CARD.ID | Identifiant de la carte registerCard était = 1 | 34 |
1.0 | REDIRECTURL | URL vers laquelle vous devez rediriger le client au lieu d'appeler le WEBKIT Obsolète | http://votresite.fr/redirectUrl |
Étape suivante : redirection des clients finaux à la page de paiement
Une fois que vous avez récupéré le Token de la transaction, vous devez rediriger le client vers la page de paiement.
Dans la plupart des cas, vous devez combiner le Token et l'URL de WEBKIT afin d'obtenir l'URL de la page de paiement.
Par exemple : https://sandbox-webkit.lemonway.fr/YOUR_COMPANY/dev/?moneyintoken=1wGaBwkdOmOxWT0s4t1Z1364815
Vous trouverez votre URL de WEBKIT dans votre mail d'onboarding.
- Le token n'est pas ré-utilisable. Vous devez générer un nouveau token pour chaque paiement.
- Dans le cas Atos V1 :
- Vous pouvez customiser la page de paiement atos, en ajoutant l'url de votre CSS au paramètre "p" dans l'URL de WEBKIT.
Par exemple : https://sandbox-webkit.lemonway.fr/YOUR_COMPANY/dev/?moneyintoken=1wGaBwkdOmOxWT0s4t1Z1364815&p=https://www.lemonway.fr/mercanet_lw.css - Pour changer la langue, vous pouvez utiliser le paramètre lang dans l'URL. Par exemple : https://sandbox-webkit.lemonway.fr/YOUR_COMPANY/dev/?moneyintoken=1wGaBwkdOmOxWT0s4t1Z1364815&lang=fr
- Vous pouvez customiser la page de paiement atos, en ajoutant l'url de votre CSS au paramètre "p" dans l'URL de WEBKIT.
- Dans le cas Atos V2 :
- Vous pouvez customiser la page de paiement en créant un modèle à nous envoyer
- Une fois votre modèle déployé, vous pourrez utiliser le paramètre tpl dans l'URL du WEBKIT
Par exemple : https://sandbox-webkit.lemonway.fr/YOUR_COMPANY/dev/?moneyintoken=1wGaBwkdOmOxWT0s4t1Z1364815&tpl=your_template_name
ATTENTION : LE CAS TRANSACTPRO
Vous ne devez pas appeler l'URL du WebKit avec le token dans le cadre d'un paiement avec transactpro. Il vous suffit de renvoyer le client à l'adresse donné par la balise REDIRECTURL.
Après que le client ait été redirigé vers la page de paiement et ait terminé le processus de paiement, il se passe deux choses :
Du côté du client (navigateur), l'utilisateur est redirigé vers vous
returnUrl,
cancelUrl
ouerrorUrl
en fonction du résultat du processus de paiement (success, cancelled, or failed). Cela signifie que votre server a reçu une notificationHTTP GET
et qu'il devrait y répondre en retournant une page pour votre client.Du côté du serveur, notre WEBKIT vous informe du statut du paiement en envoyant une notification
HTTP POST
àreturnUrl,
cancelUrl
ouerrorUrl
. Ces notifications sont appelées Notification Server To Server (S2S). Cette notification est directement envoyée à votre serveur, elle est donc complètement de vos client finaux (si vous souhaitez "visualiser" ces notification POST, il est préférable de les visualiser dans les logs de votre serveur web.Vous pouvez trouver le format des notifications ici.
Il vous faut donc préparer vos returnUrl,
cancelUrl
et errorUrl
dans le but de
Afficher votre page de succès / annulation / erreur à vos clients finaux.
Gérer l'arrivée des notifications S2S arrivant du WEBKIT.
Dans les deux cas (HTTP GET or POST)
nous renvoyons le
wkToken
(dansresponse_wkToken
). Vous pouvez donc compter surresponse_wkToken
ouresponse_transactionId
pour identifier la transaction avec GetMoneyInTransDetails.votre
returnUrl,
cancelUrl
eterrorUrl
devrait être capable de répondre aux exigences de votre entreprise (validation / annulation de commandes, envoi de mail de confirmation aux clients finaux ...).
Votre application doit être en écoute des notifications GET et POST, vous pouvez traiter l'une ou l'autre.. C-a-d quand vous recevez une de ces 2 notifications, vous devez alors appeler GetMoneyInTransDetails pour confirmer l'état puis réaliser les actions nécessaires. Vous devez continuer le traitement des réception de l'une ou l'autre notification.
- En raison de nouvelles tentative de réseau, il se peut que vous receviez la même notification plusieurs fois et pas forcément dans le même ordre (GET ou POST). Vos
returnUrl
/cancelUrl
eterrorUrl
doivent donc être capables de gérer ces situations.
Par exemple : il ne faut pas envoyer 2 fois la confirmation par mail ou valider 2 fois la même transaction.
Si vous ne recevez pas de notifications (GET ou POST), veuillez vérifier que vos returnUrl
/ cancelUrl
et errorUrl
soient accessible publiquement :
- Ne pas utiliser
localhost
ou tout autre nom de domaine privé / IP (192.168...
) - Ne pas demander d'authentification (login/mot_de_passe)
- Vérifier si votre pare-feu ne rejette pas les messages GET / POST
Vous ne devez pas croire les notification car un imposteur pourrait les imiter. Vous devez donc toujours vérifier le statut des transactions avec GetMoneyInTransDetails afin d'être certains que la transaction est en succès (paid).
Lorsque vous recevez une notification du WEBKIT, vous pouvez compter sur 2 choses afin d'identifier la transaction :
- response_wkToken
: c'est le wkToken
que vous avez choisi lors de la création de la transaction avec MoneyInWebInit
- response_transactionId
: c'est l'ID de la transaction généré par LEMONWAY lors de l'appel de MoneyInWebInit
Vous pouvez obtenir les informations détaillées des transactions à partir de l'une de ces 2 valeurs en appelant GetMoneyInTransDetails
- mettre response_wkToken
au paramètre transactionMerchantToken
- Ou mettre response_transactionId au paramètre
transactionId