Callback
განსხვავებით სხვა მეთოდებისგან, როდესაც გამოძახების ინიციატორი იყო ონლაინ მაღაზია, callback მეთოდის გამოძახება ონლაინ გადახდების სისტემიდან ხდება, ხოლო ინფორმაციის მიღება და დამუშავების ლოგიკა ონლაინ მაღაზიის მხარეს უნდა იყოს რეალიზებული. ეს მეთოდი საშუალებას გაძლევთ, რეალურ დროში მიიღოთ ინფორმაცია გადახდის სტატუსის ცვლილების შესახებ. თითოეული ონლაინ მაღაზიისთვის callback მისამართების გაწერა ხდება მისი ბანკში მერჩანტად დარეგისტრირების დროს (იხილეთ შესავალი). გადახდების სისტემაში ხდება ორი ტიპის callback url-ის გაწერა:
შემდგომში, უკვე გადახდის სტატუსის ყოველი ცვლილების დროს, წინასწარ გაწერილ callback მისამართზე იგზავნება POST მეთოდით გადახდის დეტალები. პასუხის წარმატებით მიღების დასადასტურებლად, მერჩანტმა უნდა დააბრუნოს HTTP CODE 200
.
ინფორმაციის წარუმატებლად გაგზავნის შემთხვევაში, ყოველ 15 წამში, იგზავნება განმეორებითი მოთხოვნა, სანამ მცდელობის რაოდენობა არ მიაღწევს 5-ს ან მერჩანტი არ დააბრუნებს HTTP CODE 200
სტატუსს. თუ ვერ მოხერხდა callback-ის წარმატებით გამოძახება, გადახდის სტატუსი მაინც წარმატებულია. სტატუსის გადასამოწმებლად მერჩანტმა უნდა გამოიყენოს გადახდის დეტალების მეთოდი.
შენიშვნა: callback-ს არაფერი აქვს საერთო მერჩანტის გადახდების ონლაინ სისტემიდან მის ონლაინ მაღაზიის ვებგვერდზე გადამისამართებასთან. გადამისამართება ხდება შეკვეთის მოთხოვნის request-ში, მერჩანტის მიერ გადაცემული redirect_url პარამეტრში მითითებული მნიშვნელობის მიხედვით.
Body-ს პარამეტრები
statusstring
გადახდის სტატუსი. იღებს შემდეგ მნიშვნელობებს:
success
- გადახდის პროცესი დასრულდა წარმატებით.error
- გადახდის პროცესი დასრულდა წარუმატებლად.in_progress
- გადახდის პროცესი არაა დასრულებული. თუ ორდერის გენერაციიდან 1 საათში მომხმარებელი არ დაასრულებს ტრანზაქციას, ის ავტომატურად გაუქმდება და გადავა error სტატუსზე. ეს სტატუსი ენიჭება გადახდას, როდესაც მომხმარებელი გადამისამართდება ბანკის ონლაინ გადახდის ვებგვერდზე, ხოლო ცვლილება ხდება გადახდის პროცესის წარმატებით ან წარუმატებლად დასრულების შემდეგ.
payment_hashstring
შეკვეთის მოთხოვნის დროს, გადახდების ონლაინ სისტემის მიერ დაგენერირებული გადახდის უნიკალური ჰეშირებული იდენტიფიკატორი.
ipay_payment_idstring
გადახდის იდენტიფიკატორი ipay სისტემაში (ჩანს ასევე გადახდის ქვითარზე).
status_descriptionstring
დამატებითი ინფორმაცია სტატუსის შესახებ. მაგალითად, თუ status=error, აქ ეწერება შეცდომის აღწერა.
shop_order_idstring
მერჩანტის გადახდის იდენტიფიკატორი.
payment_methodstring
გადახდის მეთოდი. შეიძლება მიიღოს შემდეგი მნიშვნელობები:
BOG_CARD
გადახდა შესრულებულია ავტორიზაციით.GC_CARD
გადახდა შესრულებულია ბარათით.BOG_LOAN
განვადებით ყიდვა.BOG_LOYALTY
გადახდა შესრულებულიაPLUS
ანMR
ქულებით.UNKNOWN
ბრუნდება იმ შემთხვევაში თუ ორდერის სტატუსი არის error ანin_progress
.
card_typestring
თუ გადახდის ტიპი არის BOG_CARD ან GC_CARD, იწერება ბარათის ტიპი. დანარჩენ სხვა შემთხვევაში იწერება UNKNOWN
. ბარათის ტიპი შეიძლება იყოს ქვემოთ მოცემულიდან ერთ-ერთი:
MC
- MastercardVISA
- VisaAMEX
- American Express
panstring
ბარათის 16-ნიშნა ნომერი. ჩანს მხოლოდ პირველი 6 და ბოლო 4 ციფრი. დანარჩენი ციფრების ნაცვლად მითითებულია „*“. შევსებულია მხოლოდ მაშინ, თუ გადახდის სტატუსი არის success
და payment_method
არის GC_CARD.
transaction_idstring
Georgian Card-ში ტრანზაქციის იდენტიფიკატორი. შევსებულია მხოლოდ მაშინ, თუ გადახდის სტატუსი არის success
და payment_method
არის GC_CARD
.
pre_auth_statusstring
პრეავტორიზაციის სტატუსი. ბრუნდება მხოლოდ მაშინ, თუ ორდერის გენერაციის დროს, capture_method
არის MANUAL
და ორდერის სტატუსი არის success
.
capture_method string
success
- პრეავტორიზაცია დამოწმებულია და თანხა გადარიცხულია მერჩანტთან.in_progress
- მიმდინარეობს პრეავტორიზაცია. თანხა დაბლოკილია და შესაძლებელია დამოწმება და განბლოკვა.success_unblocked
- პრეავტორიზაცია განბლოკილია. თანხა დაბრუნებულია მომხმარებლის ანგარიშზე და ჩანს ხელმისაწვდომ თანხებში.
გადახდის სტატუსის ცვლილების callback
- BOG payment
- Card payment
- Pre-auth payment
Content-Type: application/x-www-form-urlencoded
Request Method: POST
status: success | error
order_id: string
payment_hash: string
ipay_payment_id: string
status_description: string
shop_order_id: string
payment_method: GC_CARD | BOG_CARD | BOG_LOYALTY | BOG_LOAN | UNKNOWN
card_type: MC | VISA | AMEX | UNKNOWN
Content-Type: application/x-www-form-urlencoded
Request Method: POST
status: success | error
order_id: string
payment_hash: string
ipay_payment_id: string
status_description: string
shop_order_id: string
payment_method: GC_CARD | BOG_CARD | BOG_LOYALTY | BOG_LOAN | UNKNOWN
card_type: MC | VISA | AMEX | UNKNOWN
pan: XXXX********XXXX
transaction_id: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Content-Type: application/x-www-form-urlencoded
Request Method: POST
status: success | error
order_id: string
pre_auth_status: success | in_progress | success_unblocked
payment_hash: string
ipay_payment_id: string
status_description: string
shop_order_id: string
payment_method: GC_CARD | BOG_CARD | BOG_LOYALTY | BOG_LOAN | UNKNOWN
card_type: MC | VISA | AMEX | UNKNOWN
pan: XXXX********XXXX
transaction_id: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Payment Amount Return callback
- JSON EXAMPLE
order_id: string
payment_hash: string
ipay_payment_id: string
status_description: string
shop_order_id: string
payment_method: GC_CARD | BOG_CARD | BOG_LOYALTY
card_type: MC | VISA | AMEX