Cost+Docs

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

  1. Jūs norādāt webhook_url, veidojot pasūtījumu, vai konfigurējat noklusējuma webhook URL projekta līmenī.
  2. Kad mainās pasūtījuma statuss (piemēram, no new uz completed), Cost+ nosūta POST pieprasījumu uz jūsu webhook URL.
  3. Jūsu serveris saņem webhook, pēc tam izsauc Cost+ API, lai iegūtu pilnu pasūtījuma informāciju.
  4. 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"
}
LauksApraksts
eventNotikuma tips. Pašlaik status_changed pasūtījuma atjauninājumiem.
order_idPasūtījuma unikālais identifikators, kura statuss mainījās.
project_idProjekts, 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 200 atbildi 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

On this page