Webhook paziņojumi
Saņemiet reāllaika maksājumu statusa paziņojumus
Webhook ļauj Cost+ paziņot jūsu serverim reāllaikā, kad mainās pasūtījuma statuss. Tā vietā, lai aptaujātu API, jūs norādāt URL, un Cost+ nosūta HTTP POST pieprasījumu uz to ikreiz, kad ir atjauninājums.
Kā darbojas webhook
- Jūs norādāt
webhook_url, veidojot pasūtījumu, vai konfigurējat noklusējuma webhook URL projekta līmenī. - Kad mainās pasūtījuma statuss (piemēram, no
newuzcompleted), Cost+ nosūta POST pieprasījumu uz jūsu webhook URL. - Jūsu serveris saņem webhook, pēc tam izsauc Cost+ API, lai iegūtu pilnu pasūtījuma informāciju.
- Jūs atjaunināt savu sistēmu, pamatojoties uz verificēto pasūtījuma statusu.
Nekad neuzticieties tikai webhook saturam, lai izpildītu pasūtījumu. Vienmēr verificējiet pasūtījuma statusu, veicot GET /v1/orders/{id}/ pieprasījumu pēc webhook saņemšanas. Webhook ir paziņojumu mehānisms, nevis patiesības avots.
Webhook saturs
Webhook pamatteksts ir JSON objekts, kas satur notikuma tipu un pasūtījuma ID:
{
"event": "status_changed",
"order_id": "b9ae6...",
"project_id": "proj_abc123"
}| Lauks | Apraksts |
|---|---|
event | Notikuma tips. Pašlaik status_changed pasūtījuma atjauninājumiem. |
order_id | Pasūtījuma unikālais identifikators, kura statuss mainījās. |
project_id | Projekts, kuram pieder pasūtījums. |
Webhook URL iestatīšana
Jūs varat iestatīt webhook URL divos veidos:
Katram pasūtījumam
Iekļaujiet webhook_url lauku, veidojot pasūtījumu:
{
"currency": "EUR",
"amount": 1295,
"webhook_url": "https://www.example.com/webhook"
}Projekta noklusējums
Konfigurējiet noklusējuma webhook URL savā Cost+ vadības panelī projekta iestatījumos. Šis URL tiks izmantots visiem pasūtījumiem, kas nenosaka savu webhook_url.
Pat ja jums ir projekta līmeņa noklusējums, varat to pārrakstīt katram pasūtījumam, iekļaujot webhook_url pasūtījuma izveides pieprasījumā.
Atkārtošanas loģika
Ja jūsu serveris neatbild ar 2xx statusa kodu, Cost+ atkārto webhook piegādi:
- Maksimālie atkārtojumi: 10 mēģinājumi
- Atkārtojuma intervāls: 2 minūtes starp katru mēģinājumu
- Pirmā mēģinājuma noildze: 4 sekundes
- Turpmāko mēģinājumu noildze: 10 sekundes
Ja visi 10 atkārtotie mēģinājumi neizdodas, webhook tiek atzīmēts kā neizdevies. Jūs joprojām varat iegūt pasūtījuma statusu jebkurā laikā, aptaujājot API.
Pārliecinieties, ka jūsu webhook galapunkts atbild ātri (4 sekunžu laikā pirmajam mēģinājumam). Veiciet jebkuru ilgstošu apstrādi asinhroni pēc 200 OK atbildes atgriešanas.
Labākā prakse
- Vienmēr verificējiet caur API. Saņemot webhook, izsauciet
GET /v1/orders/\{order_id\}/, lai apstiprinātu pašreizējo statusu pirms darbību veikšanas, piemēram, preču nosūtīšanas vai piekļuves piešķiršanas. - Atgrieziet 200 ātri. Apstipriniet webhook ar
200atbildi nekavējoties un apstrādājiet pasūtījumu asinhroni, lai izvairītos no noildzēm. - Apstrādājiet dublikātus. Jūsu webhook galapunkts var saņemt vienu un to pašu notikumu vairāk nekā vienu reizi. Pārliecinieties, ka jūsu apstrādes loģika ir idempotenta.
- Izmantojiet HTTPS. Vienmēr izmantojiet HTTPS URL savam webhook galapunktam, lai nodrošinātu drošu datu pārraidi.
- Reģistrējiet webhook datus. Saglabājiet ienākošos webhook datus atkļūdošanai un audita nolūkiem.
Saistītie galapunkti
- Izveidot pasūtījumu — iestatīt
webhook_urlkatram pasūtījumam - Atjaunināt pasūtījumu — atjaunināt webhook URL esošam pasūtījumam
- Webhook notikumu shēmas — datu formāts
OrderStatusChangedEventunTransactionStatusChangedEvent