Вход для клиентов: Логин Пароль Забыли пароль? Зарегистрироваться
Стоимость SMS
0,80 рубРоссия
2,70 рубУкраина
1,00 рубКазахстан
3,60 рубСША
3,60 рубВеликобритания
Подробнее о тарифах и скидках на СМС рассылки
Мы не практикуем спам сообщения!


Здесь находится аттестат нашего WM идентификатора 171491728649

Примеры кода для SMPP API

PHP

Java


PHP

Вы можете использовать PHP для работы с нашим SMPP-сервером. Для этого вам необходимо скачать класс для работы с SMPP-сервером - smpp_php.zip

Ниже приведены готовые решения для отправки SMS. В них необходимо заменить значения переменных $bh_system_id и $bh_system_key на первые 8 символов ключа со страницы "Настройки" в вашем личном кабинете. Поле $bh_from должно соответствовать одобренной подписи со страницы "Подписи отправителя" в вашем личном кабинете.

$bh_system_id = '1234';
$bh_system_key = '5D01022D';
$bh_from = 'SMS-INFO';
$bh_host = '78.46.105.86';
$bh_port = 3200;
$bh_charset = "windows-1251";    // кодировка сообщения: utf-8, koi8-r или windows-1251 (по умолчанию)
				
include_once('SMPP.php');

// отправка сообщения
$smpp = new SMPP($bh_host, $bh_port, $bh_charset);
$smpp->bindTransmitter($bh_system_id, $bh_system_key);
$smpp->sendSMS($bh_from, '+79161234567', 'Hello world!');
				
// получение статуса сообщения
$smpp = new SMPP($bh_host, $bh_port);
$smpp->bindReceiver($bh_system_id, $bh_system_key);
$smpp->readSMS();

//статус доставки сообщения
echo $smpp->body_vars['stat'];
                

Java

Для использования протокола SMPP на языке Java рекомендуем воспользоваться бесплатной библиотекой с открытым исходным кодом JSMPP. Сайт проекта - http://code.google.com/p/jsmpp

Если ваш проект использует Maven, библиотеку можно подклеить используя следующий код в pom.xml:

<dependency>
    <groupId>com.googlecode.jsmpp</groupId>
    <artifactId>jsmpp</artifactId>
    <version>2.1.0-RELEASE</version>
</dependency>
                

Пример класса для отправки длинного, состоящего из нескольких частей, СМС сообщения:

public class SubmitLongMessageExample {
    private static TimeFormatter timeFormatter = new AbsoluteTimeFormatter();;
    
    public static void main(String[] args) {
        SMPPSession session = new SMPPSession();
        try {
            session.connectAndBind(
            	"78.46.105.86",
            	3200,
            	new BindParameter(
            		BindType.BIND_TX,
            		"1234", 	// Идентификатор: ваш идентификатор в системе - ID
            		"5D01022D",	// Пароль: первые 8 символов ключа
            		"",
            		TypeOfNumber.UNKNOWN,
            		NumberingPlanIndicator.UNKNOWN,
            		null));
        } catch (IOException e) {
            System.err.println("Failed connect and bind to host");
            e.printStackTrace();
        }
        Random random = new Random();
        
        final int totalSegments = 3;
        OptionalParameter sarMsgRefNum = OptionalParameters.newSarMsgRefNum((short)random.nextInt());
        OptionalParameter sarTotalSegments = OptionalParameters.newSarTotalSegments(totalSegments);
        
        for (int i = 0; i < totalSegments; i++) {
            final int seqNum = i + 1;
            String message = "Message part " + seqNum + " of " + totalSegments + " ";
            OptionalParameter sarSegmentSeqnum = OptionalParameters.newSarSegmentSeqnum(seqNum);
            String messageId = submitMessage(session, message, sarMsgRefNum, sarSegmentSeqnum, sarTotalSegments);
            System.out.println("Message submitted, message_id is " + messageId);
        }
        
        session.unbindAndClose();
    }
    
    public static String submitMessage(SMPPSession session, String message, OptionalParameter sarMsgRefNum, OptionalParameter sarSegmentSeqnum, OptionalParameter sarTotalSegments) {
        String messageId = null;
        try {
            messageId = session.submitShortMessage("CMT", TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.UNKNOWN, "1616", TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.UNKNOWN, "628176504657", new ESMClass(), (byte)0, (byte)1,  timeFormatter.format(new Date()), null, new RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT), (byte)0, DataCodings.ZERO, (byte)0, message.getBytes(), sarMsgRefNum, sarSegmentSeqnum, sarTotalSegments);;
        } catch (PDUException e) {
            // Invalid PDU parameter
            System.err.println("Invalid PDU parameter");
            e.printStackTrace();
        } catch (ResponseTimeoutException e) {
            // Response timeout
            System.err.println("Response timeout");
            e.printStackTrace();
        } catch (InvalidResponseException e) {
            // Invalid response
            System.err.println("Receive invalid respose");
            e.printStackTrace();
        } catch (NegativeResponseException e) {
            // Receiving negative response (non-zero command_status)
            System.err.println("Receive negative response");
            e.printStackTrace();
        } catch (IOException e) {
            System.err.println("IO error occur");
            e.printStackTrace();
        }
        return messageId;
    }
}
                

Дополнительные примеры от разработчика библиотеки можно найти на странице - http://code.google.com/p/jsmpp/source/browse/#svn%2Ftrunk%2Fsrc%2Fjava%2Fexamples%2Forg%2Fjsmpp%2Fexamples