Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Service specification

Сценарій поведінки:

Користувач вводить Для підтвердження верифікації необхідно ввести номер телефону та ОТР (одноразовий код) в систему

Якщо код введений користувачем вірний, то система надішле у відповідь
{
   "meta": {
       "code": 200,
        "url": "https://example.com/resource",
        "type": "object",
         "request_id": "req-adasdoijasdojsda"
},
 "data": {
    "id": "7d23bebb-1cf3-4221-bf21-18aada444756",
    "status": "VERIFIED",
    "code_expired_at": "2017-07-10T12:20:16.300597Z",
     "active": true
    }
}

Де:

...

  1. id- ідентифікатор запиту
  2. code_expired_at= час до якого код дійсний в системі
  3. Active- статус активності коду в системі

      ...

        1. "status": "

      ...

        1. TRUE" - при можливості верифікації:
          1. при створенні запиту за замовчуванням,
          2. якщо було менше 4 спроб використання
          3. якщо не сплинув строк дії коду (до 300 секунд після створення
        2. "status": "

      ...

        1. FALSE"  - при неуспішній верифікаціїі:
          1. якщо використали код
          2. якщо більше 3 спроб погашення
          3. якщо сплинув термін для верифікації при  верифікації, в тому числі успішній верифікації
      1. Status- відображає статус верифікації
      "status": "
      FALSE
      NEW""status": "VERIFIED""status": "UNVERIFIED""status": "EXPIRED""status": "CANCELED"
      при створенні запиту, за замовчуванням 

      при можливості верифікації:

      • при створенні запиту за замовчуванням,
      • якщо було менше 4 спроб використання
      • якщо не сплинув строк придатності

      при неуспішній верифікаціїі:

    1. якщо використали код
    2. якщо більше 3 спроб погашення
    3. якщо сплинув термін для верифікації при  верифікації, в тому числі успішній верифікації
      При успішному проходженніпри неуспішному проходженні верифікації (більше 3 спроб)Сплив строк придатності кодуВстановлюється провайдером, у випадку, якщо СМС не може бути доставленим.

    Якщо код введений користувачем невірний, то:

    Якщо це одна з перших трьох невірних спроб, система відповість
    {
      "error": {
      "message": "Invalid verification code",
      "type": "forbidden"
    },
      "meta": {
        "code": 403,
        "request_id": "xxx",
        "type": "object",
        "url": "http://api-svc.verification/verifications/{{phone_number}}/actions/complete"
       }
    }


    Якщо, це четверта (і більше) невдала спроба ввести код, то система відповість:
    {
      "error": {
         "message": "Maximum attempts exceed",
         "type": "forbidden"
              },
      "meta": {
          "code": 403,
          "request_id": "xxx",
          "type": "object",
          "url": "http://api-svc.verification/verifications/{{phone_number}}/actions/complete"
              }
    }


    Якщо вірний код введено після сплину строку придатності коду (OTP_LIFETIME=300 секунд) :
    {
      "data": {
         "active": false,
         "code_expired_at": "2020-03-13T15:14:45.640890Z",
          "id": "6b5c534c-1664-4fdc-8128-96caaeb27089",
          "status": "expired"
      },
     "meta": {
         "code": 200,
         "request_id": "xxx",
         "type": "object",
          "url": "http://api-svc.verification/verifications/{{phone_number}}/actions/complete"
       }
    }


    Якщо невірний код введено після сплину строку придатності коду :
    {
      "error": {
         "message": "Invalid verification code",
         "type": "forbidden"
       },
       "meta": {
         "code": 403,
         "request_id": "xxx",
         "type": "object",
         "url": "http://api-svc.verification/verifications/{{phone_number}}/actions/complete"
        }
    }

    ...

    Verify code

      • Search active code for phone number
      • Check code expiration period
      • Compare codes

    ...