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 :

  1. 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

  2. Une redirection du site web de la MARQUE BLANCHE vers le WEBKIT
  3. Une page de retour sur laquelle le WEBKIT POST le résultat :
    • returnUrl pour les paiements en succès
    • cancelUrlen cas d'annulation de paiement
    • errorUrlpour 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
1 : proposer d'utiliser une carte enregistrée ou enregistrer la carte

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

https://www.votresite.com/payment_return.php

errorUrl

url de retour sur le site de la MARQUE BLANCHE, que le WEBKIT appellera pour signaler une erreur

Oui

[1 : max] car

https://www.votresite.com/payment_return.php

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

https://www.votresite.com/payment_return.php

autoCommission

Si oui :

  • [amountCom] sera ignoré
  • La MARQUE BLANCHE ne recevra aucune commission, et LEMONWAY prélèvera sur [compte de paiement] sa propre commission

Non

[1] car

0 : non (par défaut)
1 : oui

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)
1 : oui

isPreAuth

Indiquer s'il ne s'agit que d'une pré-autorisation qui devra être validée

  • Si vide : le comportement par défaut du système est adopté (débit immédiat si vous n'avez pas demandé à modifier ce comportement dans votre contrat)
  • Si = 1 : le paiement est pré-autorisé. Il faudra le valider avec MoneyInValidate pendant la période du 'delayDays' (de J à J+delayDays).
  • Si autre chose : le débit est immédiat

Uniquement disponible avec Transactpro, Atos V2 et Payzen

Non[1] car0 : non (par défaut)
1 : oui
email

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] carclient@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

Non1 car3
label

Indiquer le nom de la boutique sur la page de paiement.

Uniquement disponible avec Payzen

Non[1] carexemple.com
moneyInNature

Indiquer la nature de l'activité pour ce moneyIn :

0 : activité 1
1 : activité 2

Non[1] car0 : 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.0REDIRECTURL

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.

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 :

  1. Du côté du client (navigateur), l'utilisateur est redirigé vers vous returnUrl, cancelUrl ou errorUrl en fonction du résultat du processus de paiement (success, cancelled, or failed). Cela signifie que votre server a reçu une notification HTTP GET et qu'il devrait y répondre en retournant une page pour votre client.

  2. Du côté du serveur, notre WEBKIT vous informe du statut du paiement en envoyant une notification HTTP POST à returnUrl, cancelUrl ou errorUrl. 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

  1. Afficher votre page de succès / annulation / erreur à vos clients finaux.

  2. Gérer l'arrivée des notifications S2S arrivant du WEBKIT.

Dans les deux cas (HTTP GET or POST)

  • nous renvoyons le wkToken (dans response_wkToken). Vous pouvez donc compter sur response_wkToken ou response_transactionIdpour identifier la transaction avec GetMoneyInTransDetails.

  • votre returnUrlcancelUrl et errorUrl 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 et errorUrl 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