В закладки: 

Новости

У нас самая низкая цена на SMS рассылку. Даже если Вы покупаете от 5 СМС сообщений, Вы сразу получаете привлекательную цену:

  • SMS по Украине 0,26грн.
  • СМС по России 1,6 руб.

Чем больше количество сообщений при разовой покупке, тем выгодней цена за СМС. При больших объёмах sms сообщение может стоить: по Украине 0,24 грн., по России 0,646 руб.








Документация по API

Документация API



В данном разделе вы можете ознакомиться с документацией по интеграции с нашим сайтом. Только для зарегистрированных пользователей.

SOAP-протокол

Текущая версия 1.10
Размер файла 372 Kb
Контрольная сумма af5de337400605e3fc65f36beb08dd5e
Постоянная ссылка vipsms-api-v0110.pdf

Примеры

#!/usr/local/bin/php
# vi:ts=2:sw=2:ai:et:ft=php:enc=utf-8

// Проверяем доступность расширения SOAP
if (!extension_loaded('soap')){
  echo "Error!! Extensions SOAP is not loaded.";
}

// Для вывода сообщений на терминал используем указанную кодировку
// Возможны варианты: utf-8, koi8-r, cp1251, ...
$enc_terminal = 'cp1251';

// Ваши идентификационные данные
$login  = '';
$passwd = '';

$client = new SoapClient('http://vipsms.net/api/soap.html');

// Функция пытается осуществить подключение к серверу
// в случае удали получит индетификатор сессии
$res = $client->auth($login, $passwd);
if ($res->code!=0){
	explain_problem($res);
	return;
}

// Идентификатор сессиии
$sessid = $res->message;
echo "Session is ID: {$sessid}\n";

// Отправляем сообщение, обязательно писать в кодировке UTF-8
// Телефон в международной нотации, Например +3806711122233
$res = $client->sendSmsOne($sessid, '+380671234567', 'sign', 'Сообщение в кодровке UTF8.');
if ($res->code!=0){
	explain_problem($res);
	return;
}

echo "All Ok! Message send success. ID is {$res->message}\n";

// Выводим отладочную информацию относительно полученной ошибки
function explain_problem($soap_res){
	global $enc_terminal;
	echo "Warning, problem:\n";
	echo " code   : {$soap_res->code}\n";
	echo " message: {$soap_res->message}\n";
	if ($soap_res->extend && is_array($soap_res->extend)){
		echo " explain: ".iconv('utf-8', $enc_terminal, var_export($soap_res->extend, true))."\n";
	}
	return;
}
#!/usr/bin/perl
# vi:ts=2:sw=2:ai:et:ft=perl:enc=utf-8

# Все строки, которые передаются на сервер и содержат
# киррилические символы, должны быть объявлены в кодировке UTF-8

use strict;
use encoding 'utf-8';
use Encode qw/encode/;
use Data::Dumper;
use SOAP::Lite;

# Для вывода сообщений на терминал используем указанную кодировку
# Возможны варианты: utf-8, koi8-r, cp1251, ...
my $enc_terminal = 'cp1251';

# Ваши идентификационные данные
my $login  = '';
my $passwd = '';

my $soap;
# Пробуем установить соеденение с сервисом
eval{
   $soap = SOAP::Lite->service('http://vipsms.net/api/soap.html');
};

if (!$soap || $@){
  die "Error! Can't connect to soap-service.\nReason is: $@";
}

my $result;
eval{
  # Посмотрим версию сервиса
  $result = $soap->getVersion();
} or die "Error! $@";
if (defined $result){
  print "Version is ".$result."\n";
}

my $sessid;
eval{
  # Получим сессию
  $result = $soap->auth($login, $passwd);
} or die "Error! $@";
if ($result->{code}!=0){
  explain_problem($result);
}else{
  $sessid = $result->{message};
}
print "Session is ID: $sessid\n";

my $balance;
eval{
  # Посмотрим баланс
  $result = $soap->getBalance($sessid);
} or die "Error! $@";

if ($result->{code}!=0){
  explain_problem($result);
}else{
   $balance = $result->{message};
}
print "Balance amount: $balance\n";

# Проверяем, возможность отправки сообщения. Смотрим на состояния баланса.
if (!$balance){
  die "Error! Balance is EMPTY. Stop.";
}

my $sms_content = "Тестовое сообщение perl -> SOAP -> client";

# Отправим сообщение
eval{
  # Телефон в международной нотации, Например +3806711122233
  $result = $soap->sendSmsOne($sessid, '+380671234567', 'sign', $sms_content);
} or die "Error! $@";

if ($result->{code}!=0){
  explain_problem($result);
}

print "All Ok! Message send success. ID is $result->{message}\n";

# Выводим отладочную информацию относительно полученной ошибки
sub explain_problem($){
  my $res = shift;
  print "Warning, problem:\n";
  print " code:    $res->{code}\n";
  print " message: $res->{message}\n";
  if ($res->{extend} && ref($res->{extend})=='ARRAY'){
    my $explain = Data::Dumper->Dump([$res->{extend}]);
    $explain=~s/\\(
               (?:[arnt'"\\]) |               # Single char escapes
               (?:[ul].) |                    # uc or lc next char
               (?:x[0-9a-fA-F]{2}) |          # 2 digit hex escape
               (?:x\{[0-9a-fA-F]+\}) |        # more than 2 digit hex
               (?:\d{2,3}) |                  # octal
               (?:N\{U\+[0-9a-fA-F]{2,4}\})   # unicode by hex
                )/"qq|\\$1|"/geex;
    $explain=~s/^\$VAR1\s*=\s*//;
    print " explain:".encode($enc_terminal, $explain)."\n";
    die;
  }
  return;
}


#!/usr/local/bin/python
# vi:ts=2:sw=2:ai:et:ft=python:enc=utf-8
# -*- coding: utf-8 -*-

import pprint
from types import *
from SOAPpy import WSDL

pp = pprint.PrettyPrinter(indent=4)

#Explain of response
def explain_problem(resp):
    print("Explain problem:")
    pp.pprint( "code   : "+str(resp.code))
    pp.pprint( "message: "+resp.message)
    if (resp.extend and type(resp.extend) is DictType):
        print " extend: ";pp.pprint(resp.extend)
    return

#Set to debug input/output protocol to stdout
#WSDL.Config.debug = 1

wsdl = "http://vipsms.net/api/soap.html"
login = ''
passwd = ''

wsdlObj = WSDL.Proxy(wsdl)

try:
    resp = wsdlObj.auth(login, passwd);
except Exception, ex:
    print ex

if (resp.code!=0):
    explain_problem(resp)
    exit;

sessid = resp.message;

try:
    resp =  wsdlObj.getBalance(sessid)
    if (resp.code!=0):
        explain_problem(resp)
        exit;

except Exception, ex:
    print ex

print "Balance is:"+resp.message

try:
    resp =  wsdlObj.sendSmsOne(sessid, '+380671234567', 'sign', 'Convert text in utf-8')
    if (resp.code!=0):
        explain_problem(resp)
        raise "Message not sended"
        exit;
    print "Success! Message sended"
except Exception, ex:
    print ex
#!/usr/local/bin/ruby -Ku
# vi:ts=2:sw=2:ai:et:ft=ruby:enc=utf-8

require 'soap/wsdlDriver'
require 'pp'

def explain_problem(response)
    pp " code    : "+response['code'].to_s
    pp " message : "+response['message'].to_s
    pp response['extend']
    if (response['extend'] && response['extend'].kind_of?(Array))
         p response['extend']
    end
end

wsdl = "http://vipsms.net/api/soap.html"

driver = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
login  = ''
passwd = ''

response = driver.getVersion();

pp "Version SOAP service is "+response

begin
    response = driver.auth(login, passwd)
    if response['code']!=0 then raise "Auth failed" end
rescue Exception => ex
    pp "!Error: "+ex.message
    explain_problem response
    exit
end

sessid = response['message'];

begin
    response = driver.sendSmsOne(sessid, "+380671234567", 'sign', "Convert text in utf-8");
    if response['code']!=0 then raise "Message not sended"
rescue Exception => ex
    pp "!Error: "+ex.message
    explain_problem response
    exit
end

pp "Success! Message sended";
Используем модуль SOAP из git-репозитория milewise / node-soap
//vi:ts=2:sw=2:ai:et:ft=node:enc=utf-8

var soap = require('soap');
var login = '';
var passwd = '';

var url = 'http://vipsms.net/api/soap.html';
soap.createClient(url,
function(err, client) {
    client.auth({ login: login, passwd: passwd}, function(err, res){
        if (res.return.code!=0){
            console.log('Auth is FAIL. Explain', res);
        }else{
            var sessid = res.return.message
            console.log('Session ID is: '+ sessid);

            client.getBalance({ suuid: sessid }, function(err, res){
                if (res.return.code!=0){
                    console.log('Get balance is FAIL. Explain', res);
                }else{
                    console.log('Balance amount: '+res.return.message+' units')
                }
            });

            client.sendSmsOne({ suuid: sessid, dst_phone: '+380671234567', sign_name: 'sign', message_utf: "Convert text in utf-8"}, function(err, res){
                console.log('Send message is OK');
            });
        }
    })
});