Webhooks
საქართველოს ბანკის callback შეტყობინებები
საქართველოს ბანკი ბარათით გადახდის სტატუსის ცვლილებისას CodeOn-ს ხელმოწერილ შეტყობინებებს (signed callbacks) უგზავნის. CodeOn raw body-ს დამუშავებამდე ამოწმებს, ინახავს მოვლენას და შესაბამის შეკვეთაზე გადახდის სტატუსების ლოგიკას ატარებს.
- მეთოდი
POST- მისამართი
/api/payments/bog/callback
ხელმოწერის შემოწმება
- წაიკითხეთ raw request body-ის ბაიტები. შემოწმებამდე არ დაამუშაოთ (parse) და თავიდან არ გადააქციოთ ტექსტად (re-stringify).
- წაიკითხეთ
Callback-Signatureჰედერი. - ხელმოწერა გადაამოწმეთ Bank of Georgia-ს კონფიგურირებული callback-ის საჯარო გასაღებით.
- JSON-ის დამუშავება ხდება მხოლოდ ხელმოწერის წარმატებით შემოწმების შემდეგ.
შეკვეთის იდენტიფიცირება
CodeOn ჯერ body.external_order_id-ს იყენებს. ეს არის CodeOn-ის შეკვეთის UUID, რომელიც BoG-ის შეკვეთის შექმნისას იგზავნება. თუ ის მითითებული არ არის, სისტემა იყენებს BoG-ის body.order_id-ს, რომელიც შეკვეთაზე ინახება.
იდემპოტენტურობა
ყოველი შემოწმებული მოვლენა ინახება იდემპოტენტურობის გასაღებით, რომელიც არის sha256(rawBody). დუბლირებული callback შეტყობინებები მონაცემთა ბაზის დონეზე უგულებელყოფილია (no-op). სტატუსების ლოგიკაც იდემპოტენტურია, რათა განმეორებულმა შეტყობინებებმა შეკვეთა ერთსა და იმავე საბოლოო სტატუსამდე მიიყვანოს.