Как отправлять SMS с сайта через smsc.ru

Введение

СМС Центр (https://smsc.ru/) - это сервис для отправки SMS через API (и множества др. функций). 

Тарифы - https://smsc.ru/tariffs/

Здесь мы покажем как создать API исходящий запрос и как использовать его на форме отправки СМС. 

Исходящий API 

Создаем исходящий API на /asapi с кодом smsc (GET, json)

Создаем процедуру Request: 

CREATE PROCEDURE [dbo].[api_smsc_request]
	@parameters ExtendedDictionaryParameter READONLY, 
	@username nvarchar(32) 
AS
BEGIN
	declare @login nvarchar(128) = isnull(dbo.as_setting('smsc.login', ''), '')
    declare @psw nvarchar(128) = isnull(dbo.as_setting('smsc.psw', ''), '')
    
	declare @phone nvarchar(128) = isnull((select value2 from @parameters where [key]='phone'), '')
    declare @text nvarchar(max) = isnull((select value2 from @parameters where [key]='text'), '')
    
    if(@login='') begin 
    	select 0 Result, 'Не указан в настройках логин smsc.ru' Msg 
        return
    end 
    if(@psw='') begin 
    	select 0 Result, 'Не указан в настройках пароль smsc.ru' Msg 
        return
    end 
    if(@phone='') begin 
    	select 0 Result, 'Не указан номер телефона' Msg 
        return
    end 
    if(@text='') begin 
    	select 0 Result, 'Не указан текст СМС' Msg 
        return
    end 
    
	-- SELECT 1
	select '' Msg, 1 Result, 'https://smsc.ru/sys/send.php?login='+@login+'&psw='+@psw+'&phones='+@phone+'&mes='+ @text Url 

END

В настройках мы должны прописать логин и пароль к сервису smsc.ru, перед этим необходимо создать на нем кабинет и пополнить баланс.  

Процедура Response по умолчанию: 

CREATE PROCEDURE [dbo].[api_smsc_response]
	@response nvarchar(max),
	@parameters ExtendedDictionaryParameter READONLY, 
	
	@username nvarchar(32)
AS
BEGIN
	-- SELECT 1
	select '' Msg, 1 Result, @response Response
END

В целом метод готов к использованию. Его мы будем вызывать из формы отправки сообщения. 

Страница и форма отправки СМС

Создаем страницу sms, помещаем на нее форму отправки СМС (не забываем проставить Роли для формы): 

<div class="as-form" data-code="sms" data-itemid="kak-otpravlyat-sms-s-sayta-cherez-smsc-ru"></div>

В URL мы передаем телефон и текст по умолчанию в виде Телефон;Текст

В JS прописываем обработку вызова API после выполнения действия на форме: 

$(function(){
  as.formcallbacks["sms_saveItem"] = function(data){
    var ad = JSON.parse(data.additionalData);
    console.log(ad, "sms_saveItem");
    if(ad){
      var el = ad[0];
      if(el.result){
		var msg = el.msg;
        if(!msg){ 
            for(var i =0; i < el.items.length; i++)
            {
                if(el.items[i].key=="spCallbackResult") msg =el.items[i].title;
            }
        }
        as.sys.bootstrapAlert(msg || "OK", {type: "success", hidePrev: true, delay: 10000000});
      }else{
        as.sys.bootstrapAlert(el.msg || "Operation error", {type: "danger", hidePrev: true});
      }       
    }
  }

});

Теперь создаем форму sms с 2 колонками phone, text (Многострочное поле).  Оба поля обязательные.

GetItem формы sms:

CREATE PROCEDURE [dbo].[fm_sms_getItem]
    @itemID nvarchar(512),	
	@username nvarchar(256)
AS
BEGIN
	declare @phone nvarchar(256) = dbo.str_splitPart(@itemID, ';', 1)
    declare @text nvarchar(256) = dbo.str_splitPart(@itemID, ';', 2)
    -- SELECT 1
	select @phone phone, isnull(@text , 'Falcon Space') text, '{"maxlength": 70}' options_text
    -- SELECT 2
    select 1 LineLabel
END

SaveItem формы SMS: 

CREATE PROCEDURE [dbo].[fm_sms_saveItem]
   @username nvarchar(256), 
   @itemID nvarchar(512),
   @parameters ExtendedDictionaryParameter READONLY	
AS
BEGIN	
	declare @pphone nvarchar(max)
	select @pphone = Value2 from @parameters where [key]='phone'
	declare @ptext nvarchar(max)
	select @ptext = Value2 from @parameters where [key]='text'
	-- SELECT 1 
	select 1 Result, ' ' Msg, '' SuccessUrl, 0 HideFormAfterSubmit, '' RefreshContainer
	
	-- SELECT 2 Вызов внешнего действия
    select 'apirequest' type, 'smsc' code, 'phone' p1_name, @pphone p1_value, 'text' p2_name, @ptext p2_value

END

Где-то на страницах указываем ссылку на страницу в виде: 

/sms/79008007060;А это текст смс

Как выглядит форма отправки: 

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK