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".
{'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.
GET /orders/{uuid}
<p class="p"/>
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 le webhook que vous avez déclaré.
- 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).