Analyser le résultat du paiement

Le serveur de la Marketplace est notifié sous forme de webhook pour chaque changement de statut des objets Order et Token.

Le webhook est envoyé à l'adresse renseignée par la marketplace lors de la phase d'intégration.

Cette URL est lisible sur l'objet Marketplace à l'attribut "webhook_url".

Le webhook est envoyé en POST avec l'entête "Content-Type: application/json".

Exemple de notification (webhook)
{'order':'515abac9-6cb2-4e21-8a25-b08d7e41e43c'}

En PHP, ce json peut être récupéré par le code suivant :

$json = file_get_contents('php://input');
$data = json_decode($json);
$orderUuid = $data->order ?? false;

Il appartient ensuite à la Marketplace d'appeler la ressource GET ORDER (ou TOKEN) avec l'uuid communiqué afin de connaître le nouvel état de l'objet en question.

Exemple d'appel GET ORDER

GET https://secure.lyra.com/marketplace/orders/515abac9-6cb2-4e21-8a25-b08d7e41e43c/

Exemple de retour GET ORDER

{
     "uuid": "515abac9-6cb2-4e21-8a25-b08d7e41e43c",
     "href": "https://secure.lyra.com/marketplace/orders/515abac9-6cb2-4e21-8a25-b08d7e41e43c",
     "created_at": "2015-03-19T16:30:14.434Z",
     "updated_at": "2015-03-19T16:30:14.434Z",
     "marketplace": "9537e049-8862-400a-ae8d-da2ec9ca6051",
     "reference": "cmd00052",
     "description": "Commande",
     "buyer":[{
          "reference": "nope775",
          "title": "M.",
          "type": "PRIVATE",
          "first_name": "Simone",
          "last_name": "Legendre",
          "phone_number": "02 13 06 95 27",
          "email": "ndurand@tiscali.fr",
          "address": {
               "street_number": "29",
               "street": "rue Besnard",
               "district": "Île-de-France",
               "zipcode": "83819",
               "city": "Roux",
               "state": "Hautes-Pyrénées",
               "country": "FR"}
          }],
     "shipping":[ {
          "delivery_company_name": "DHL",
          "address": {
               "street_number": "493",
               "street": "avenue Duhamel",
               "district": "Saint-Martin",
               "zipcode": "33980",
               "city": "Hamon",
               "state": "Charente-Maritime",
               "country": "FR"},
          "shipping_speed": "EXPRESS",
          "shipping_method": "ETICKET",
          "type": "PRIVATE",
          "first_name": "Luc",
          "last_name": "Leveque",
          "phone_number": "+33 (0)1 46 05 15 89"
	}],
     "amount": null,
     "currency": "EUR",
     "status": "CREATED",
     "webhook_result": 200,
     "url_return": "http://www.lyra-sms.com/",
     "links": {
          "items": {
               "href": "https://secure.lyra.com/marketplace/orders/515abac9-6cb2-4e21-8a25-b08d7e41e43c/items"},
          "transactions": {
               "href": "https://secure.lyra.com/marketplace/orders/515abac9-6cb2-4e21-8a25-b08d7e41e43c/transactions"},
          "refunds": {
               "href": "https://secure.lyra.com/marketplace/orders/515abac9-6cb2-4e21-8a25-b08d7e41e43c/refunds"},
          "execute":{
               "href": "https://secure.lyra.com/marketplace/orders/515abac9-6cb2-4e21-8a25-b08d7e41e43c/execute"},
          "execute-embedded": {
               "href": "https://secure.lyra.com/marketplace/orders/515abac9-6cb2-4e21-8a25-b08d7e41e43c/execute-embedded"}
     },
     "vads_transaction_id": 500003,
     "vads_transaction_date": ""	
}		

En cas de doute sur l'envoi ou la réception du webhook, vous pouvez consulter l'attribut "webhook_result" de la ressource en question. Cet attribut contient le "status code" de la requête HTTP réalisée par notre serveur. Ainsi,

  • s'il est valorisé à null, le webhook n'a pas (encore) été envoyé.
  • S'il indique 200, le webhook est réputé vous être parvenu.
  • S'il indique 404, nous vous invitons à contrôler l'adresse que vous nous avez indiquée.
  • etc...

Remarque :

Le code d'autorisation de la transaction est enregistré dans l'attribut auto_code renvoyé par le détail des transactions (accessible par la ressource GET Transaction (voir Objet Transaction).