# აუტენტიფიკაცია ⚠️(Deprecated)

## რა დამჭირდება გადახდის API-ს გამოსაყენებლად
ონლაინ გადახდების API-ს გამოსაყენებლად საჭიროა აუტენტიფიკაცია [HTTP Basic Auth](https://en.wikipedia.org/wiki/Basic_access_authentication)-ის გამოყენებით. ამისთვის თქვენ დაგჭირდებათ, იცოდეთ სისტემაში შესასვლელი რეკვიზიტები (Credentials), რომელიც თითოეული მერჩანტისთვის უნიკალურია. რეკვიზიტები მოიცავს ორ პარამეტრს: client_id და secret_key, რომელიც გამოიყენება, როგორც  username-ი და password-ი, მერჩანტის აუტენტიფიკაციისას.

## როგორ გავიგოთ მერჩანტის სისტემაში შესასვლელი რეკვიზიტები
მას შემდეგ, რაც კომპანია დარეგისტრირდება მერჩანტად საბანკო სისტემაში და შეავსებს ყველა საჭირო მონაცემს, მას მიენიჭება და გადაეცემა სისტემაში შესასვლელი რეკვიზიტები client_id და secret_key. რეკვიზიტები მერჩანტის უნიკალური მაიდენტიფიცირებელია. ამასთან, secret_key პაროლის მნიშვნელობის პარამეტრია - მისი სხვა პირისთვის გადაცემა, გასაჯაროება დაუშვებელია. ამან შეიძლება ონლაინ მაღაზიისთვის საფრთხის რისკი მნიშვნელოვნად გაზარდოს! Secret_key-ს ცვლილება მერჩანტის მიერ შეუძლებელია.

## მეთოდის აღწერა
მოცემული მეთოდის საშუალებით, მერჩანტი გადის აუტენტიფიკაციას. გამოძახების შედეგად, ონლაინ გადახდების სერვერის მიერ ბრუნდება Bearer Token, რომელიც ყველა შემდგომი მეთოდის  გამოძახებისთვის არის აუტენტიფიკაციისთვის აუცილებელი პარამეტრი.

### Header-ის პარამეტრები

- `Content-Type` — application/x-www-form-urlencoded, required

- `Authorization` — Basic <base64>, required

  გადაეცემა „Basic „ + „<client_id>:<secret_key>“  მნიშვნელობა კოდირებული Base64 ფორმატში
  (მაგ: „Basic ODI4Mjo3Njk3MDY0OTlmMDcwOWUyMzQ4NDU4NjNmOThiMjMxNA==“)
  სადაც <client_id> და <secret_key> არის, ბანკის მიერ მერჩანტისთვის გადაცემული, სისტემაში შესვლისთვის საჭირო რეკვიზიტები.

### Body-ს პარამეტრები

- `grant_type` — client_credentials, required

  მნიშვნელობად გადაეცემა ფიქსირებული ტექსტი: `client_credentials`

**HTTP**

```api
POST /api/v1/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: Basic <base64>
```

```properties
grant_type=client_credentials
```

### Response

- `access_token` — string

  ავტორიზაციის სერვერის მიერ დაბრუნებული Token-ის მნიშვნელობა

- `token_type` — string

  Token-ის ტიპი (ბრუნდება ტექსტური მნიშვნელობა - `bearer`)

- `app_id` — string

  არ გამოიყენება

- `expires_in` — number

  აბრუნებს რიცხვით მნიშვნელობას, თუ რამდენი წამის განმავლობაში არის აქტიური Token.

**RESPONSE**

```json
{
  "access_token": "<JWT>",
  "token_type": "Bearer",
  "app_id": "1A2019",
  "expires_in": 1634719923245
}
```
