API (документация по интеграции мобильной коммерции)


1. Инициация мобильного платежа через интернет

2. Инициация мобильного платежа через отправку SMS сообщения на короткий номер



1. Инициация мобильного платежа через интернет

  1. Находясь на сайте «продавца», абонент желает оплатить покупку с мобильного телефона. Он выбирает товар и вводит свой номер телефона.
  2. Система «продавца» генерирует код товара и совершает инициацию платежа путём отправки HTTP GET запроса на скрипт Electronic Vostok. Код товара - строка, не содержащая пробелов, длиной желательно до 50 символов.
  3. Запрос на платёж передаётся оператору связи, за которым закреплён данный абонент. Далее платформа оператора связи выполняет двухшаговый алгоритм проведения платежа.
  4. Cистема Electronic Vostok, получая первый шаг от оператора, делает HTTP GET запрос на скрипт «продавца», в параметрах передавая уникальный идентификатор платежа, номер абонента и код товара. Этот первый шаг - не сам платёж, а проверка, возможен ли такой платёж.
  5. Скрипт «продавца», глядя на номер абонента и код товара, пытается определить, что хочет купить абонент. Если скрипту удаётся понять, что хочет абонент, скрипт должен вернуть стоимость товара и его краткое описание. Если скрипту не удаётся понять, что именно хочет купить абонент - скрипт возвращает сообщение об этом.
  6. Абонент получает описание товара и стоимость. У него запрашивается согласие приобрести указанный товар по указанной цене.
  7. Если абонент соглашается совершить покупку, на скрипт «продавца» приходит ещё один HTTP GET запрос, как в пункте 2), но с ещё одним дополнительным GET-параметром, указывающим, что это уже не проверка возможности платежа, а именно подтверждение покупки. На этом шаге «продавец» должен оказать абоненту услугу, а скрипт должен вернуть подтверждение успешности операции.

ТЕХНИЧЕСКОЕ ОПИСАНИЕ:

Запрос-инициация совершается системой "продавца" на скрипт Electronic Vostok и содержит два GET-параметра:

  • subno - номер абонента, в формате 7xxxxxxxxxx
  • text - код товара, кодировка UTF8

В запросе-проверке на скрипт «продавца» передаются четыре HTTP GET параметра:

  • subno - номер абонента, в формате 7xxxxxxxxxx
  • keyword - ключевое слово, выделенное "продавцу" при подключении, кодировка UTF8
  • text - код товара, кодировка UTF8
  • paymentid - уникальный идентификатор платежа, BIGINT

В ответ на запрос-проверку скрипт «продавца» должен в теле ответа вернуть строку, состоящую из стоимости товара и краткого описания. Разделитель между ними - точка с запятой. Если скрипт не может понять, что хочет приобрести абонент, то вместо стоимости должен быть 0, а вместо описания товара - описание ошибки.

В запросе-подтверждении на скрипт «продавца» передаются пять HTTP GET параметров:

  • subno - номер абонента, в формате 7xxxxxxxxxx
  • keyword - ключевое слово, выделенное "продавцу" при подключении, кодировка UTF8
  • text - код товара, кодировка UTF8
  • paymentid - уникальный идентификатор платежа (такой же, как и в запросе-проверке)
  • confirm - признак того, что это запрос-подтверждение, а не запрос-проверка.

В ответ на запрос-подтверждение скрипт «продавца» должен в теле ответа вернуть строку, состоящую из флага успешной операции (0 - неудача, 1 - успех) и текстового описания операции. Разделитель между ними - точка с запятой.

Важно: в случае проблем со связью запросы-проверки и запросы-подтверждения могут приходить повторно на скрипт «продавца». На такие повторные запросы скрипт должен выдавать корректные ответы, но при повторном получении запроса-подтверждения с уже оплаченным paymentid второй раз оказывать услугу не нужно, нужно лишь продублировать ответ об успешном выполнении платежа.

ПРИМЕР ПЛАТЕЖА:

Запрос-инициация:

http://electronic.vostok.url/our_script?subno=79260000000&text=fff%2B100

Запрос-проверка:

http://your.server/your_script?subno=79260000000&keyword=KW&text=fff%2B100&paymentid=1234567890123456789

Ответ скрипта:

40;Пополнение баланса аккаунта fff на 100 баллов

(абонент после этого получает на свой телефон вопрос "Для подтверждения операции "Пополнение баланса аккаунта fff на 100 баллов", стоимость 40 рублей, отправьте 1 в ответ на это сообщение", формулировка примерная, у каждого оператора связи она своя).

Если абонент даёт своё согласие, выполняя запрошенные оператором связи действия (в данном примере, ответив на смс-ку единицей), то двигаемся дальше.

Запрос-подтверждение:

http://your.server/your_script?subno=79260000000&keyword=KW&text=fff%2B100&paymentid=1234567890123456789&confirm=1

Ответ скрипта:

1;Баланс успешно пополнен


2. Инициация мобильного платежа через отправку SMS сообщения на короткий номер

  1. «Продавец» размещает рекламу сервиса, содержащую инструкцию по отправке смс согласованного с Electronic Vostok формата на согласованный номер.
  2. Абонент видит рекламу, решает совершить платёж и отправляет смс сообщение.
  3. Electronic Vostok получает смс и исходя из текста формирует запрос на платёж. Запрос на платёж передаётся оператору связи, за которым закреплён данный абонент. Далее платформа оператора связи выполняет двухшаговый алгоритм проведения платежа.
  4. Cистема Electronic Vostok, получая первый шаг от оператора, делает HTTP GET запрос на скрипт «продавца», в параметрах передавая уникальный идентификатор платежа, номер абонента и код товара. Этот первый шаг - не сам платёж, а проверка, возможен ли такой платёж.
  5. Скрипт «продавца», глядя на номер абонента и код товара, пытается определить, что хочет купить абонент. Если скрипту удаётся понять, что хочет абонент, скрипт должен вернуть стоимость товара и его краткое описание. Если скрипту не удаётся понять, что именно хочет купить абонент - скрипт возвращает сообщение об этом.
  6. Абонент получает описание товара и стоимость. У него запрашивается согласие приобрести указанный товар по указанной цене.
  7. Если абонент соглашается совершить покупку, на скрипт «продавца» приходит ещё один HTTP GET запрос, как в пункте 2), но с ещё одним дополнительным GET-параметром, указывающим, что это уже не проверка возможности платежа, а именно подтверждение покупки. На этом шаге «продавец» должен оказать абоненту услугу, а скрипт должен вернуть подтверждение успешности операции.

ТЕХНИЧЕСКОЕ ОПИСАНИЕ:

В запросе-проверке на скрипт «продавца» передаются четыре HTTP GET параметра:

  • subno - номер абонента, в формате 7xxxxxxxxxx
  • keyword - ключевое слово, выделенное "продавцу" при подключении, кодировка UTF8
  • text - код товара, кодировка UTF8
  • paymentid - уникальный идентификатор платежа, BIGINT

В ответ на запрос-проверку скрипт «продавца» должен в теле ответа вернуть строку, состоящую из стоимости товара и краткого описания. Разделитель между ними - точка с запятой. Если скрипт не может понять, что хочет приобрести абонент, то вместо стоимости должен быть 0, а вместо описания товара - описание ошибки.

В запросе-подтверждении на скрипт «продавца» передаются пять HTTP GET параметров:

  • subno - номер абонента, в формате 7xxxxxxxxxx
  • keyword - ключевое слово, выделенное "продавцу" при подключении, кодировка UTF8
  • text - код товара, кодировка UTF8
  • paymentid - уникальный идентификатор платежа (такой же, как и в запросе-проверке)
  • confirm - признак того, что это запрос-подтверждение, а не запрос-проверка.

В ответ на запрос-подтверждение скрипт «продавца» должен в теле ответа вернуть строку, состоящую из флага успешной операции (0 - неудача, 1 - успех) и текстового описания операции. Разделитель между ними - точка с запятой.

Важно: в случае проблем со связью запросы-проверки и запросы-подтверждения могут приходить повторно на скрипт «продавца». На такие повторные запросы скрипт должен выдавать корректные ответы, но при повторном получении запроса-подтверждения с уже оплаченным paymentid второй раз оказывать услугу не нужно, нужно лишь продублировать ответ об успешном выполнении платежа.

ПРИМЕР ПЛАТЕЖА:

Запрос-проверка:

http://your.server/your_script?subno=79260000000&keyword=KW&text=fff%2B100&paymentid=1234567890123456789

Ответ скрипта:

40;Пополнение баланса аккаунта fff на 100 баллов

(абонент после этого получает на свой телефон вопрос "Для подтверждения операции "Пополнение баланса аккаунта fff на 100 баллов", стоимость 40 рублей, отправьте 1 в ответ на это сообщение", формулировка примерная, у каждого оператора связи она своя).

Если абонент даёт своё согласие, выполняя запрошенные оператором связи действия (в данном примере, ответив на смс-ку единицей), то двигаемся дальше.

Запрос-подтверждение:

http://your.server/your_script?subno=79260000000&keyword=KW&text=fff%2B100&paymentid=1234567890123456789&confirm=1

Ответ скрипта:

1;Баланс успешно пополнен