Créer un ordre de paiement WhatsApp
Cas d'utilisation
Le marchand crée un ordre de paiement envoyé par WhatsApp à l'acheteur.
Tester
Testez le Web Service Charge/CreatePaymentOrder depuis notre playground : Charge/CreatePaymentOrder.
Requête
Paiement comptant
Exemple de requête
Champs obligatoires :
- Montant : 100,00 €.
- Canal de diffusion : WHATSAPP.
- Numéro de téléphone de l'acheteur : "+33611111111"
Champs recommandés :
- Référence de la commande : "myOrderId-1234"
{ "amount": 10000, "currency": "EUR", "orderId": "myOrderId-1234", "channelOptions": { "channelType": "WHATSAPP", "whatsAppOptions": { "phoneNumber":"+33611111111" } } }
{ "amount": 200050, "currency": "PEN", "orderId": "myOrderId-999999", "channelOptions": { "channelType": "WHATSAPP", "whatsAppOptions": { "phoneNumber": "+51987654321" } }, "paymentReceiptEmail": "sample@example.com", "expirationDate": "2020-04-20T20:13:26+02:00", "locale": "es_PE", "dataCollectionForm": "false" }
{ "amount": 200050, "currency": "ARS", "orderId": "myOrderId-999999", "channelOptions": { "channelType": "WHATSAPP", "whatsAppOptions": { "phoneNumber": "+5491112345678" } }, "paymentReceiptEmail": "sample@example.com", "expirationDate": "2020-04-20T20:13:26+02:00", "locale": "es_AR", "dataCollectionForm": "false" }
{ "amount": 200050, "currency": "COP", "orderId": "myOrderId-999999", "channelOptions": { "channelType": "WHATSAPP", "whatsAppOptions": { "phoneNumber": "+573191234567" } }, "paymentReceiptEmail": "sample@example.com", "expirationDate": "2020-04-20T20:13:26+02:00", "locale": "es_CO", "dataCollectionForm": "false" }
{ "amount": 200050, "currency": "EUR", "orderId": "myOrderId-999999", "channelOptions": { "channelType": "WHATSAPP", "whatsAppOptions": { "phoneNumber":"+5511123456789" } }, "paymentReceiptEmail": "sample@example.com", "expirationDate": "2020-04-20T20:13:26+02:00", "dataCollectionForm": "false" }
/** * I initialize the PHP SDK */ require_once __DIR__ . '/vendor/autoload.php'; require_once __DIR__ . '/keys.php'; require_once __DIR__ . '/helpers.php'; /** * Initialize the SDK * see keys.php */ $client = new Lyra\Client(); /** * I create a formToken */ $store = array("amount" => 250, "currency" => "EUR", "orderId" => uniqid("MyOrderId"), "customer" => array( "email" => "sample@example.com" )); $response = $client->post("V4/Charge/CreatePayment", $store); /* I check if there are some errors */ if ($response['status'] != 'SUCCESS') { /* an error occurs, I throw an exception */ display_error($response); $error = $response['answer']; throw new Exception("error " . $error['errorCode'] . ": " . $error['errorMessage'] ); } /* everything is fine, I extract the formToken */ $formToken = $response["answer"]["formToken"]; ?>
/** * I initialize the PHP SDK */ require_once __DIR__ . '/vendor/autoload.php'; require_once __DIR__ . '/keys.php'; require_once __DIR__ . '/helpers.php'; /** * Initialize the SDK * see keys.php */ $client = new Lyra\Client(); /** * I create a formToken */ $store = array("amount" => 250, "currency" => "EUR", "orderId" => uniqid("MyOrderId"), "customer" => array( "email" => "sample@example.com" )); $response = $client->post("V4/Charge/CreatePayment", $store); /* I check if there are some errors */ if ($response['status'] != 'SUCCESS') { /* an error occurs, I throw an exception */ display_error($response); $error = $response['answer']; throw new Exception("error " . $error['errorCode'] . ": " . $error['errorMessage'] ); } /* everything is fine, I extract the formToken */ $formToken = $response["answer"]["formToken"]; ?>
La description et l'intégralité des champs sont disponibles (menu à gauche) : Charge/CreatePaymentOrder.
Paiement en plusieurs fois
Prérequis
- soumis à option et/ou en fonction de votre offre - non disponible pour le paiement SEPA
Exemple de requête
Champs obligatoires :
- Montant : 100,00 €.
- Canal de diffusion : WHATSAPP.
- Numéro de téléphone de l'acheteur : "+33611111111"
- Règle :
- Montant du premier paiement : 50,00 € .
- Nombre d’échéances : 3 pour du paiement en 3 fois.
- Période (en jours) entre chaque échéance : 7 jours.
Champs recommandés :
- Référence de la commande : "myOrderId-1234".
{ "amount": 10000, "currency": "EUR", "orderId": "myOrderId-1234", "channelOptions": { "channelType": "WHATSAPP", "whatsAppOptions": { "phoneNumber":"+33611111111" } }, "transactionOptions": { "installmentOptions": { "firstAmount": 5000, "count": 3, "period": 7 } } }
Le premier paiement de 50,00 EUR est créé à J+0.
Le deuxième paiement de 25,00 EUR est créé à J+7.
Le troisième paiement de 25,00 EUR est créé à J+14.
La description et l'intégralité des champs sont disponibles (menu à gauche) : Charge/CreatePaymentOrder.
Paiement en plusieurs fois avec un écheancier personnalisé
Prérequis
- soumis à l’option "Paiement en plusieurs fois avancé"
- non prise en compte de la valeur du champ Capture Delay (délai de remise en banque)
- non disponible pour le paiement SEPA
Exemple de requête
Champs obligatoires :
- Montant : 100,00 €.
- Canal de diffusion : WHATSAPP.
- Numéro de téléphone de l'acheteur : "+33611111111"
- Règle : Paiement en 3 fois.
- le 1er Avril pour un montant de 50,00 EUR.
- le 1er Mai pour un montant de 30,00 EUR.
- le 1er Juin pour un montant de 20,00 EUR.
Champs recommandés :
- Référence de la commande : "myOrderId-1234".
{ "amount": 10000, "currency": "EUR", "orderId": "myOrderId-1234", "channelOptions": { "channelType": "WHATSAPP", "whatsAppOptions": { "phoneNumber":"+33611111111" } }, "transactionOptions": { "installmentOptions": { "schedules": [ { "date": "2023-04-01T23:59:59+00:00", "amount": 5000 }, { "date": "2023-05-01T23:59:59+00:00", "amount": 3000 }, { "date": "2023-06-01T23:59:59+00:00", "amount": 2000 } ] } } }
/** * I initialize the PHP SDK */ require_once __DIR__ . '/vendor/autoload.php'; require_once __DIR__ . '/keys.php'; require_once __DIR__ . '/helpers.php'; /** * Initialize the SDK * see keys.php */ $client = new Lyra\Client(); /** * I create a formToken */ $store = array("amount" => 250, "currency" => "EUR", "orderId" => uniqid("MyOrderId"), "customer" => array( "email" => "sample@example.com" )); $response = $client->post("V4/Charge/CreatePayment", $store); /* I check if there are some errors */ if ($response['status'] != 'SUCCESS') { /* an error occurs, I throw an exception */ display_error($response); $error = $response['answer']; throw new Exception("error " . $error['errorCode'] . ": " . $error['errorMessage'] ); } /* everything is fine, I extract the formToken */ $formToken = $response["answer"]["formToken"]; ?>
Réponse
Exemple de réponse
{ "webService": "Charge/CreatePaymentOrder", "version": "V4", "applicationVersion": "5.5.0", "status": "SUCCESS", "answer": { "paymentOrderId": "fd8f6060f824427ba687d0161e46af8f", "paymentURL": "https://secure.lyra.com/t/328zq5so", "paymentOrderStatus": "RUNNING", "creationDate": "2020-03-31T15:06:49+00:00", "updateDate": null, "amount": 10000, "currency": "EUR", "locale": "fr_FR", "strongAuthentication": "AUTO", "orderId": "myOrderId-1234", "channelDetails": { "channelType": "WHATSAPP", "mailDetails": null, "smsDetails": null, "whatsAppDetails": { "phoneNumber": "+3361111111", "_type": "V4/WhatsAppDetails" }, "ivrDetails": null, "_type": "V4/ChannelDetails" }, "paymentReceiptEmail": "sample@example.com", "taxRate": null, "taxAmount": null, "expirationDate": "2020-04-20T18:13:26+00:00", "transactionDetails": { "cardDetails": { "manualValidation": "NO", "captureDelay": 0, "_type": "V4/CardDetails" }, "_type": "V4/PaymentOrderTransactionDetails" }, "dataCollectionForm": false, "merchantComment": null, "message": "Bonjour, voici un ordre de paiement envoyé par DEMO STORE d'un montant de 2000.50 EUR valable jusqu'au 23/04/2020. Pour confirmer, veuillez suivre le lien : https://secure.lyra.com/t/xdt0bcmo", "_type": "V4/PaymentOrder" }, "ticket": null, "serverDate": "2020-03-31T15:06:49+00:00", "applicationProvider": "PAYZEN", "metadata": null, "_type": "V4/WebService/Response" }
{ "webService": "Charge/CreatePaymentOrder", "version": "V4", "applicationVersion": "5.5.0", "status": "SUCCESS", "answer": { "paymentOrderId": "fd8f6060f824427ba687d0161e46af8f", "paymentURL": "https://secure.lyra.com/t/328zq5so", "paymentOrderStatus": "RUNNING", "creationDate": "2020-03-31T15:06:49+00:00", "updateDate": null, "amount": 200050, "currency": "EUR", "locale": "en_GB", "strongAuthentication": "AUTO", "orderId": "myOrderId-999999", "channelDetails": { "channelType": "WHATSAPP", "mailDetails": null, "smsDetails": null, "whatsAppDetails": { "phoneNumber": "+51987654321", "_type": "V4/WhatsAppDetails" }, "ivrDetails": null, "_type": "V4/ChannelDetails" }, "paymentReceiptEmail": "sample@example.com", "taxRate": null, "taxAmount": null, "expirationDate": "2020-04-20T18:13:26+00:00", "transactionDetails": { "cardDetails": { "manualValidation": "NO", "captureDelay": 0, "_type": "V4/CardDetails" }, "_type": "V4/PaymentOrderTransactionDetails" }, "dataCollectionForm": false, "merchantComment": null, "message": Dear customer, this is a payment order sent by DEMO STORE of EUR 2,000.50 valid until 23/04/2020. To confirm, please click on the link below : https://secure.lyra.com/t/xdt0bcmo", "_type": "V4/PaymentOrder" }, "ticket": null, "serverDate": "2020-03-31T15:06:49+00:00", "applicationProvider": "PAYZEN", "metadata": null, "_type": "V4/WebService/Response" } }
{ "webService": "Charge/CreatePaymentOrder", "version": "V4", "applicationVersion": "5.5.0", "status": "SUCCESS", "answer": { "paymentOrderId": "fd8f6060f824427ba687d0161e46af8f", "paymentURL": "https://secure.lyra.com/t/328zq5so", "paymentOrderStatus": "RUNNING", "creationDate": "2020-03-31T15:06:49+00:00", "updateDate": null, "amount": 200050, "currency": "EUR", "locale": "es_ES", "strongAuthentication": "AUTO", "orderId": "myOrderId-999999", "channelDetails": { "channelType": "WHATSAPP", "mailDetails": null, "smsDetails": null, "whatsAppDetails": { "phoneNumber": "+51987654321", "_type": "V4/WhatsAppDetails" }, "ivrDetails": null, "_type": "V4/ChannelDetails" }, "paymentReceiptEmail": "sample@example.com", "taxRate": null, "taxAmount": null, "expirationDate": "2020-04-20T18:13:26+00:00", "transactionDetails": { "cardDetails": { "manualValidation": "NO", "captureDelay": 0, "_type": "V4/CardDetails" }, "_type": "V4/PaymentOrderTransactionDetails" }, "dataCollectionForm": false, "merchantComment": null, "message": "Hola, este mensaje contiene una solicitud de pago enviada por DEMO STORE por un monto de 2.000,50 ARS, válida hasta el 23/04/2020. Para confirmar el pago, haga clic en el enlace siguiente : https://secure.lyra.com/t/xdt0bcmo", "_type": "V4/PaymentOrder" }, "ticket": null, "serverDate": "2020-03-31T15:06:49+00:00", "applicationProvider": "PAYZEN", "metadata": null, "_type": "V4/WebService/Response" } }
{ "webService": "Charge/CreatePaymentOrder", "version": "V4", "applicationVersion": "5.5.0", "status": "SUCCESS", "answer": { "paymentOrderId": "fd8f6060f824427ba687d0161e46af8f", "paymentURL": "https://secure.lyra.com/t/328zq5so", "paymentOrderStatus": "RUNNING", "creationDate": "2020-03-31T15:06:49+00:00", "updateDate": null, "amount": 200050, "currency": "EUR", "locale": "es_ES", "strongAuthentication": "AUTO", "orderId": "myOrderId-999999", "channelDetails": { "channelType": "WHATSAPP", "mailDetails": null, "smsDetails": null, "whatsAppDetails": { "phoneNumber": "+573191234567", "_type": "V4/WhatsAppDetails" }, "ivrDetails": null, "_type": "V4/ChannelDetails" }, "paymentReceiptEmail": "sample@example.com", "taxRate": null, "taxAmount": null, "expirationDate": "2020-04-20T18:13:26+00:00", "transactionDetails": { "cardDetails": { "manualValidation": "NO", "captureDelay": 0, "_type": "V4/CardDetails" }, "_type": "V4/PaymentOrderTransactionDetails" }, "dataCollectionForm": false, "merchantComment": null, "message": "Hola, este mensaje contiene una solicitud de pago enviada por DEMO STORE por un monto de 2.000,50 COP, válida hasta el 23/04/2020. Para confirmar el pago, haga clic en el enlace siguiente : https://secure.lyra.com/t/xdt0bcmo", "_type": "V4/PaymentOrder" }, "ticket": null, "serverDate": "2020-03-31T15:06:49+00:00", "applicationProvider": "PAYZEN", "metadata": null, "_type": "V4/WebService/Response" } }
{ "webService": "Charge/CreatePaymentOrder", "version": "V4", "applicationVersion": "5.5.0", "status": "SUCCESS", "answer": { "paymentOrderId": "fd8f6060f824427ba687d0161e46af8f", "paymentURL": "https://secure.lyra.com/t/328zq5so", "paymentOrderStatus": "RUNNING", "creationDate": "2020-03-31T15:06:49+00:00", "updateDate": null, "amount": 200050, "currency": "EUR", "locale": "es_ES", "strongAuthentication": "AUTO", "orderId": "myOrderId-999999", "channelDetails": { "channelType": "WHATSAPP", "mailDetails": null, "smsDetails": null, "whatsAppDetails": { "phoneNumber": "+5491112345678", "_type": "V4/WhatsAppDetails" }, "ivrDetails": null, "_type": "V4/ChannelDetails" }, "paymentReceiptEmail": "sample@example.com", "taxRate": null, "taxAmount": null, "expirationDate": "2020-04-20T18:13:26+00:00", "transactionDetails": { "cardDetails": { "manualValidation": "NO", "captureDelay": 0, "_type": "V4/CardDetails" }, "_type": "V4/PaymentOrderTransactionDetails" }, "dataCollectionForm": false, "merchantComment": null, "message": "Hola, este mensaje contiene una solicitud de pago por un importe de 2.000,50 PEN, válida hasta el 23/04/2020. Para confirmar el pago, haga clic en el enlace siguiente : https://secure.lyra.com/t/xdt0bcmo", "_type": "V4/PaymentOrder" }, "ticket": null, "serverDate": "2020-03-31T15:06:49+00:00", "applicationProvider": "PAYZEN", "metadata": null, "_type": "V4/WebService/Response" } }
{ "webService": "Charge/CreatePaymentOrder", "version": "V4", "applicationVersion": "5.5.0", "status": "SUCCESS", "answer": { "paymentOrderId": "fd8f6060f824427ba687d0161e46af8f", "paymentURL": "https://secure.lyra.com/t/328zq5so", "paymentOrderStatus": "RUNNING", "creationDate": "2020-03-31T15:06:49+00:00", "updateDate": null, "amount": 200050, "currency": "EUR", "locale": "pt_BR", "strongAuthentication": "AUTO", "orderId": "myOrderId-999999", "channelDetails": { "channelType": "WHATSAPP", "mailDetails": null, "smsDetails": null, "whatsAppDetails": { "phoneNumber": "+5511123456789", "_type": "V4/WhatsAppDetails" }, "ivrDetails": null, "_type": "V4/ChannelDetails" }, "paymentReceiptEmail": "sample@example.com", "taxRate": null, "taxAmount": null, "expirationDate": "2020-04-20T18:13:26+00:00", "transactionDetails": { "cardDetails": { "manualValidation": "NO", "captureDelay": 0, "_type": "V4/CardDetails" }, "_type": "V4/PaymentOrderTransactionDetails" }, "dataCollectionForm": false, "merchantComment": null, "message": "Caro cliente, este mensagem contém uma ordem de pagamento enviada por DEMO STORE no valor de 2000.50 BRL válida até 23/04/2020. Para confirmar o pagamento, favor clicar sobre o link seguinte : https://secure.lyra.com/t/xdt0bcmo", "_type": "V4/PaymentOrder" }, "ticket": null, "serverDate": "2020-03-31T15:06:49+00:00", "applicationProvider": "PAYZEN", "metadata": null, "_type": "V4/WebService/Response" }
L'ordre de paiement est envoyé sur la messagerie WhatsApp de l'acheteur.
Retrouvez la description et l'intégralité des 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_928** | Le format du champ **installmentOptions.firstAmount** est invalide ou le champ n'est pas transmis.| | **INT_929** | Le paramètre **installmentOptions.count** est invalide.| | **INT_930** | Le paramètre **installmentOptions.period** est invalide.| | **INT_931** | Le paramètre **installmentOptions.schedules[]** est invalide.| | **INT_932** | Le paramètre **installmentOptions.schedules[date]** est invalide.| | **INT_933** | Le format du champ **installmentOptions.schedules[amount]** est invalide ou le champ n'est pas transmis.| | **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.| {: .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é.