Callback
განსხვავებით სხვა მეთოდებისგან, რომლების გამოძახების ინიციატორიც იყო ბიზნესი, callback მეთოდის გამოძახება ონლაინ გადახდების სისტემიდან ხდება, ხოლო ინფორმაციის მიღება და დამუშავების ლოგიკა ბიზნესის მხარეს უნდა იყოს რეალიზებული. ეს მეთოდი საშუალებას გაძლევთ, რეალურ დროში მიიღოთ ინფორმაცია გადახდის სტატუსის ცვლილების შესახებ.
თუ:
- გადახდა წარმატებით დასრულდა;
- გადახდა წარუმატებლად დასრულდა;
- თანხა სრულად ან ნაწილობრივ დაუბრუნდა მომხმარებელს
შეკვეთის მოთხოვნის დროს გადმოცემულ callback_url მისამართზე იგზავნება POST მეთოდით გადახდის დეტალები. პასუხის წარმატებით მიღების დასადასტურებლად, ბიზნესმა უნდა დააბრუნოს HTTP CODE 200. თუ ვერ მოხერხდა callback-ის წარმატებით გამოძახება, გადახდის სტატუსი უცვლელი რჩება. სტატუსის გადასამოწმებლად ბიზნესმა უნდა გამოიყენოს გადახდის დეტალების მეთოდი.
შენიშვნა: callback-ს არაფერი აქვს საერთო გადახდების ონლაინ სისტემიდან ბიზნესის ვებგვერდზე გადამისამართებასთან. გადამისამართება ხდება შეკვეთის მოთხოვნის request-ში, ბიზნესის მიერ გადაცემული redirect_urls პარამეტრში მითითებული მნიშვნელობის მიხედვით.
Response
Header-ის პარამეტრები
Callback-Signaturestring
ხელმოწერა დაგენერირებულია callback-ის request body-ზე private key
-ით SHA256withRSA
ალგორითმის გამოყენებით. იმისათვის, რომ ბიზნესი დარწმუნდეს callback-ში გადმოცემული ინფორმაციის ვალიდურობაში, request body-ისა და public key
-ის დახმარებით უნდა დაავერიფიციროს ხელმოწერა. ვერიფიკაცია უნდა მოხდეს payload-ის დესერიალიზაციამდე, იმისათვის რომ request body-ის პარამეტრების თანმიმდევრობა დარჩეს უცვლელი.
- PUBLIC KEY
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu4RUyAw3+CdkS3ZNILQh
zHI9Hemo+vKB9U2BSabppkKjzjjkf+0Sm76hSMiu/HFtYhqWOESryoCDJoqffY0Q
1VNt25aTxbj068QNUtnxQ7KQVLA+pG0smf+EBWlS1vBEAFbIas9d8c9b9sSEkTrr
TYQ90WIM8bGB6S/KLVoT1a7SnzabjoLc5Qf/SLDG5fu8dH8zckyeYKdRKSBJKvhx
tcBuHV4f7qsynQT+f2UYbESX/TLHwT5qFWZDHZ0YUOUIvb8n7JujVSGZO9/+ll/g
4ZIWhC1MlJgPObDwRkRd8NFOopgxMcMsDIZIoLbWKhHVq67hdbwpAq9K9WMmEhPn
PwIDAQAB
-----END PUBLIC KEY-----
Body
eventstring
ქოლბექის ტიპი. მნიშვნელობა ყოველთვის არის order_payment
.
zoned_request_timestring
bodyobject
შეკვეთის მონაცემები. მოიცავს იმავე ველებს, რასაც შეიცავს გადახდის დეტალები.
- RESPONSE
{
"event": "order_payment",
"zoned_request_time": "2022-11-23T18:06:37.240559Z",
"body": {
"order_id": "a767a276-cddd-43ec-9db3-9f9b39eee02d",
"industry": "ecommerce",
...
}
}