Payer avec un QR Code
Cas d'utilisation
Grâce au Web Service Charge/CreateQRCode, le marchand crée un QR code.
Une fois créé et affiché, l'acheteur scanne le QR code pour payer.
2 modes existent :
Mode E-commerce
Requête
Exemple avec les champs obligatoires et recommandés :
Montant : 100,00 EUR;
E-mail de l'acheteur;
Nom du moyen de paiement;
Retrouvez la description et l'intégralité des champs depuis le playground : Charge/CreateQRCode (menu à gauche).
Mode Instore (en magasin)
Le mode Instore
vous permet de proposer un moyen de paiement en affichant un QR code sur un terminal de paiement.
Requête
Exemple avec les champs obligatoires et recommandés :
Montant : 100,00 EUR ;
E-mail de l'acheteur;
Nom du moyen de paiement;
Numéro de série du terminal;
Origine du paiement :
INSTORE
;
Pour Alma, seuls les paiements en 3 et 4 fois sont disponibles pour le mode Instore
.
Retrouvez la description et l'intégralité des champs depuis le playground : Charge/CreateQRCode (menu à gauche).
Réponse
Trois types de réponse existent dans le champ qrCode.qrType
:
base64
)
Exemple de réponse
URL
{ "webService": "Charge/CreateQRCode", "version": "V4", "applicationVersion": "6.10.0", "status": "SUCCESS", "answer": { "uuid": "3e14c758e0464a1f85f6de287689306d", "amount": 10000, "currency": "EUR", "orderId": "myOrderId-1234", "qrCode": { "expirationDate": "2024-02-22T09:55:44+00:00", "qrType": "URL", "value": "https://secure.lyra.com/checkout(...)entID=253965149&s=M", "copyPasteValue": null, "_type": "URL" }, "_type": "V4/Charge/CreateQRCodeResponse" }, (...) "_type": "V4/WebService/Response" }
Le champ qrCode.value
contient une URL.
L'acheteur clique sur l'URL pour afficher le QR code.
Le marchand peut aussi créer un QR code avec l'URL générée.
Exemple d'implémentation en PHP :
<?php include('phpqrcode/qrlib.php'); // Load the PHP QR Code librairy $url='qrCode.value'; // Retrieve the answer.qrCode.value QRcode::png($url, 'image-qrcode.png'); // Create the QR Code ?>
DATA
{ "webService": "Charge/CreateQRCode", "version": "V4", "applicationVersion": "6.10.0", "status": "SUCCESS", "answer": { "uuid": "3e14c758e0464a1f85f6de287689306d", "amount": 10000, "currency": "EUR", "orderId": "myOrderId-1234", "qrCode": { "expirationDate": "2024-01-04T09:50:27+00:00", "qrType": "DATA", "value": "00020101021226(...)f3f8-44fa-805d-3552f3ae759c5204000053039865802BR5925LYRA NETWORK TEL M PAGAME6009SAO PAULO62070503***630426BD", "_type": "DATA" }, "_type": "V4/Charge/CreateQRCodeResponse" }, (...) "_type": "V4/WebService/Response" }
Utilisez la valeur du champ qrCode.value
pour créer le QR code.
Exemple d'implémentation en PHP :
<?php include('phpqrcode/qrlib.php'); // Load the PHP QR Code librairy $value='qrCode.value'; // Retrieve the answer.qrCode.value QRcode::png($value, 'image-qrcode.png'); // Create the QR Code ?>
IMAGE (encodée en base64)
{ "webService": "Charge/CreateQRCode", "version": "V4", "applicationVersion": "6.10.0", "status": "SUCCESS", "answer": { "uuid": "3e14c758e0464a1f85f6de287689306d", "amount": 10000, "currency": "EUR", "orderId": "myOrderId-1234", "qrCode": { "expirationDate": "2024-01-04T09:50:27+00:00", "qrType": "IMAGE", "value": "iVBORw07(...)wewJpltJrLXvdENKGtEvQpazhQYeMy3B4up5XyA64lTSD+Apcr0Opbr760ZEKiSLRj8r/F3AH5oAdICpAVIC5A8gD9G7EWe3QLtLAAAAABJRU5ErkJggg==", "_type": "IMAGE" }, "_type": "V4/Charge/CreateQRCodeResponse" }, (...) "_type": "V4/WebService/Response" }
Récupérez la valeur du champ qrCode.value
encodée en base64
et l'insérez dans une balise img
.
<div> <img src="data:image/png;base64,iVBORw07(...)wewJpltJrLXvdENKGtEvQpazhQYeMy3B4up5XyA64lTSD+Apcr0Opbr760ZEKiSLRj8r/F3AH5oAdICpAVIC5A8gD9G7EWe3QLtLAAAAABJRU5ErkJggg==" alt="QR code"> </div>
Retrouvez la description et l'intégralité des champs dans notre playground : QRCodeTransaction.
Gestion des erreurs
Tableau des erreurs
transactionOptions.paymentMethodOptions.deviceSerialNumber
) est obligatoire si le champ transactionOptions.paymentMethodOptions.paymentSource
a pour valeur INSTORE
. |
{: .lita-excluded-col1}Analyse du résultat du paiement
Pour connaître le résultat du paiement, implémentez l’URL de notification à la fin du paiement (également appelée IPN).
L'utilisation du champ ipnTargetUrl
est déconseillée.