Отправка кода через входящий звонок (i-dgtl.ru) - альтернатива SMS

Интеграция с платформой i-dgtl.ru для отправки кода через входящий звонок

Пользователь вводит свой телефон и ему идет входящий звонок, где последние 4 цифры номера являются кодом подтверждения действия.

Используется для авторизации по телефону, подтверждение действий на сайте и т.д.

Чем это лучше чем SMS? Это дешевле в 2-3 раза (менее 2 руб за звонок, SMS от 6-8 до 40 руб).

Промостраница - https://i-dgtl.ru/produkty-i-uslugi/flashcall/

Порядок действий

1. Регистрация на https://i-dgtl.ru/   Верификация через ЭДО (что удобнее и меньше рисков, чем отправка скана паспорта у аналогов). 

2. Получение API токена типа  "Отправка сообщений, рассылок, получение статистики". 

3. Пробы тестового запроса вида 

POST запрос на https://direct.i-dgtl.ru/api/v1/message  

HttpHeader - Authorization=Basic _______API TOKEN___________________

Тело запроса: 

[
  {
    "channelType": "FLASHCALL",
    "senderName": "NAME1",
    "destination": "79209542217",
    "content": "1299"
  }
]

Документация по API Flash call - https://api.docs.direct.i-dgtl.ru/messages/flashcall-sending/

4. Если запрос уходит и идет звонок, то реализуем исходящий АПИ метод

Request процедура:

CREATE PROCEDURE [dbo].[api_sendCodeByPhoneCall_request]
  @parameters ExtendedDictionaryParameter READONLY,  -- (Key, Value2)
  @username nvarchar(32)  -- current site user
AS
BEGIN
        declare @code nvarchar(max) = isnull((select value2 from @parameters where [Key] = 'code'), '')
    declare @phone nvarchar(max) = isnull((select value2 from @parameters where [Key] = 'phone'), '') -- 79209542217
    if(left(@phone,1)<>'7') begin 
        select 0 Result, 'Телефон должен начинаться с 7' Msg 
        return
    end 
    if(@code = '' or len(@code)<> 4) begin 
        select 0 Result, 'Код должен быть 4 символа' Msg 
        return
    end 
    
    declare @key nvarchar(max) = dbo.as_setting('idgtlKey', '--')
    declare @sender nvarchar(max) = dbo.as_setting('idgtlSender', 'FALCONSPACE')



    declare @url nvarchar(max) = 'https://direct.i-dgtl.ru/api/v1/message'
    

  -- SELECT 1  Msg, Result, Url (outer request url)
  select '' Msg, 1 Result, @url Url, '' ContentType, 
      '' Certpath, '' CertPass, '' RequestParameterForResponse, 0 Timeout 

  -- SELECT 2 PARAMETERS - request parameters
   select 'Authorization' name, 'Basic '+ @key value, 'header' [type] 
  union
   select '' name, '[
  {
    "channelType": "FLASHCALL",
    "senderName": "'+@sender+'",
    "destination": "'+@phone+'",
    "content": "'+@code+'"
  }
]' value, 'json' [type] 
 
END

Если что-то не работает, то помощь можно получить через техподдержку - ТГ бот @idgtl_cc_bot 

Страница-источник на сайте falconspace.ru