Créer un ordre de paiement par QR Code
Cas d'utilisation
Le marchand crée un ordre de paiement par QR Code et aussi un lien de paiement. L'envoi du message est réalisée par le marchand.
Requête
Paiement avec un QR Code
Exemple de requête
Champs obligatoires :
- Montant : 100,00 €.
- Canal de diffusion : URL.
Champs recommandés :
- Référence de la commande : "myOrderId-1234".
- QR code : 250 px.
/doc/fr-FR/rest/V4.0/api/kb/authentication.html
https://github.com/lyra/rest-php-examples/blob/master/www/minimalEmbeddedForm.php#L9-L44
https://api.systempay.fr/api-payment/V4/Charge/CreatePaymentOrder
{ "amount": 10000, "currency": "EUR", "orderId": "myOrderId-1234", "channelOptions": { "channelType": "URL", "urlOptions": { "generateQRCode" : "true", "qrCodeSize" : 250 } } }
Paramètre | Requis | Description |
---|---|---|
channelOptions.urlOptions.generateQRCode | Oui | Paramètre pour générer un QR Code (Peut prendre la valeur true ou false ). |
channelOptions.urlOptions.qrCodeSize | Non | Paramètre permettant de définir la taille du QR Code en pixels (valeur comprise entre 50 et 400). Par défaut, 100. |
Réponse
Exemple de réponse
Récupérez dans l'objet **Answer** la valeur de `channelDetails.urlDetails.qrCode`correspondant à une image encodée en base64.
(..) "channelDetails": { "channelType": "URL", (..) "urlDetails": { "qrCode": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AQAAAACgl2eQAAABZklEQVR4Xu2XUYrDMAxEBTlAjpSr+0g5gMGrp2lK4y79zoAHEWzl/UwlOW6M32oxZyYtQFqAtABpAdJzgB4od4ot06ndDWDdxnlUxAampBfQYm+Z2YaipXFTID32OPDrD2Qey5YAS3Y7I/NfyzkATHv6au9g7wZIvQbnXSbJCCBZvvKVLFftzACYtHYeUYPTNUT3Yj0f6DUsGToESHMg+AFpcDspWX4Wq1i0nx1A7DilTOk6C3e3aQHIZgEyO7fc84FR1xKqQ7/BTzYtAM1+ftmT2YrJ563lPIBWlYK8SjbZNABeWwb/gI+g8dwA2ewcv417b/Hfv8PDARnsdZRRrJPx/2w5CwCbuWRweHKklUcvQBLWdd26f9wtgI6xmpTrfpKN5wewJpltJrLXvdENKGtEvQpazhQYeMy3B4up5XyA64lTSD+Apcr0Opbr760ZEKiSLRj8r/F3AH5oAdICpAVIC5A8gD9G7EWe3QLtLAAAAABJRU5ErkJggg==", "_type": "V4/URLDetails" }, }
Insérez cette donnée dans une balise img
.
<div> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AQAAAACgl2eQAAABZklEQVR4Xu2XUYrDMAxEBTlAjpSr+0g5gMGrp2lK4y79zoAHEWzl/UwlOW6M32oxZyYtQFqAtABpAdJzgB4od4ot06ndDWDdxnlUxAampBfQYm+Z2YaipXFTID32OPDrD2Qey5YAS3Y7I/NfyzkATHv6au9g7wZIvQbnXSbJCCBZvvKVLFftzACYtHYeUYPTNUT3Yj0f6DUsGToESHMg+AFpcDspWX4Wq1i0nx1A7DilTOk6C3e3aQHIZgEyO7fc84FR1xKqQ7/BTzYtAM1+ftmT2YrJ563lPIBWlYK8SjbZNABeWwb/gI+g8dwA2ewcv417b/Hfv8PDARnsdZRRrJPx/2w5CwCbuWRweHKklUcvQBLWdd26f9wtgI6xmpTrfpKN5wewJpltJrLXvdENKGtEvQpazhQYeMy3B4up5XyA64lTSD+Apcr0Opbr760ZEKiSLRj8r/F3AH5oAdICpAVIC5A8gD9G7EWe3QLtLAAAAABJRU5ErkJggg==" alt="QR Code"> </div>
Le marchand peut aussi envoyer un lien de paiement grâce au champ paymentURL
de l'objet Answer.
Retrouvez la description et l'intégralité des autres champs dans notre playground : PaymentOrder
Gestion des erreurs
Tableau des erreurs
Code | Description |
---|---|
INT_009 | Le format du champ amount est invalide ou le champ n'est pas transmis. |
INT_010 | Le format du champ currency est invalide ou le champ n'est pas transmis. |
INT_050 | Le paramètre strongAuthentication est invalide. |
INT_856 | Le paramètre locale est invalide. |
INT_858 | Le paramètre taxRate est invalide. |
INT_869 | Le paramètre taxAmount est invalide. |
INT_936 | Le paramètre channelOptions.urlOptions.qrCodeSize est invalide. Valeur comprise entre comprise entre 50 et 400. |
PSP_519 | Devise inconnue. |
PSP_606 | Devise non supportée par le contrat. |
PSP_1007 | La date d'expiration de l'ordre de paiement ne peut etre antérieure à la date courante ni excédée 90 jours. |
PSP_1015 | Aucun formulaire de collecte de données pour cette boutique. |
PSP_1018 | Le formulaire de collecte de données ne peut être utilisé pour la devise demandée. |
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é.