მთავარ შინაარსზე გადასვლა
codeon
CodeOn Core
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). სტატუსების ლოგიკაც იდემპოტენტურია, რათა განმეორებულმა შეტყობინებებმა შეკვეთა ერთსა და იმავე საბოლოო სტატუსამდე მიიყვანოს.

საპასუხო შეტყობინების წესები

შემთხვევაHTTPმიზეზი
Invalid signature401მონაცემები არასანდოა და შეკვეთის უსაფრთხოდ იდენტიფიცირება შეუძლებელია.
Verified but non-JSON200იწერება ლოგში და იგნორირდება; არასწორად ფორმატირებული ხელმოწერილი მონაცემის თავიდან გამოგზავნას აზრი არ აქვს.
Verified unknown order200რჩება ლოგში გადასამოწმებლად; BoG-მ მოთხოვნა უსასრულოდ არ უნდა გაიმეოროს.
Verified known order200მოვლენა ინახება და სტატუსი ახლდება. სტატუსის განახლების შეცდომის შემთხვევაშიც კი, ჩანაწერი ადმინისტრატორის გადასამოწმებლად მაინც შენარჩუნდება.