Обработка колбэка

V 2.0

Contents

Как только наш сервер обнаруживает транзакцию, мы делаем уведомление Интернет-магазину на указанную ссылку. Вам потребуется написать страницу обработки платежей в своём магазине, чтобы получать от нас информацию об оплатах и завершать заказы клиентов.

Наш сервис делает уведомления, начиная с 0 (не подтверждённая транзакция) до 6 подтверждений в биткоин-сети. Всего максимально вы можете получить 7 колбэков на каждую транзакцию.

После 1 подтверждения в сети, Биткоины будут мгновенно переведены на указанный адрес магазина, а в колбэке появятся поля хэш-транзакции и адрес получателя.

Чтобы подтвердить успешную обработку нашего колбэка, Интернет-магазин должен ответить текстовым сообщением:

*ok*

После того, как мы получили *ok*, мы перестаём делать уведомления по этой транзакции.

В случае, если ответ от вашего сервера не был получен или не был верным, наш колбэк-сервер будет делать новые попытки с выходом каждого блока в течение последующих трёх дней.

Разница между колбэком v1 и v2 заключается в типе HTTP-метода (GET/POST) и в построении параметров в JSON. Если Вы используете процессинг v2, то следует использовать обработку колбэка v2!

В этой версии колбэк всегда отправляет POST запрос на на указанный URL-адрес и содержит сведения об оплате и/или о форвардинге платежа.

Пример колбэка

Следующий блок показывает пример колбэка:

{
  "data": 
  {
      "invoice_id": 1234,
      "secret": "7j0ap91o99cxj8k9"
  },
  "input_address": "1E2VSRsaW3Kb1gDkdRUGDo6knAKfi9iYsb",
  "confirmations": 1,
  "input_transaction_hash": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
  "transaction_hash": "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098",
  "value" : 100000000,
  "value_forwarded": 99979800,
  "destinations": 
  [
    {"address": "1apiKcJM95jENZeom2dQo8ShK7dUQkRaS", "amount": 20000000},
    {"address": "1apimr7q2cL3xPma8SfiDPyTdWSHXSEyB", "amount": 30000000},
    {"address": "1ApiwpetcWnBbkpU7cb7biPfc6Tiucasf8", "amount": 49979800}
  ]
}
Параметры и переменные

В следующей таблице перечислены все POST-параметры, которые будут отправлены в запросе на сервер:

Параметры Аргумент Требование Поэкспериментируйте со значениями
{data} Массив пользовательских параметров для платежа Опциональное поле  
{value}
целое число, диапазон 1-10^16

Сумма в сатоши
Сумма, которую оплатил клиент в сатоши (1 биткоин = 100 000 000 сатоши). Убедитесь, что вы все правильно обрабатываете на стороне магазина и, если нужно, разделите эту сумму на 100 000 000, чтобы получить результат в биткоинах.

Обязательное поле
{input_address}
string, 32 символа
Адрес для оплаты
Сгенерированный биткойн-адрес, на который клиент должен отправлять платеж.
Обязательное поле
количество подтверждений
целое число, диапазон 0-1000

Количество подтверждений
Число принятых подтверждений в сети. Диапазон 0-6.

Обязательное поле
{input_transaction_hash}
строка, 32 символа

Хэш входной транзакции
Хэш транзакции клиента.

Обязательное поле
{transaction_hash}
строка, 32 символа
Хеш транзакции
Хэш транзакции перевода средств на кошелек получателя.
Появится только после форвардинга платежа
{value_forwarded}
целое число, диапазон 1-10^16
Доставленная сумма в Сатоши
Доставленная, на адрес получателя, сумма в Сатоши за вычетом комиссии блокчейн сети и сервиса (1 BTC = 100 000 000 Сатоши). Убедитесь, что вы все правильно обрабатываете на стороне магазина и, если нужно, разделите эту сумму на 100 000 000, чтобы получить результат в биткоинах.
Появится только после форвардинга платежа  
{destinations}
Массив из адресов-получателей с указанием суммы. Обязательное поле
  Сбросить значения Проверить колбэк
Результат выполнения:
*ok*

Это неверный ответ сервера. Правильный ответ на колбэк должен быть в текстовом формате без каких-либо тэгов или посторонних символов. Правильный ответ: *ok*

Спасибо. Вы сделали всё правильно!

Пример кода обработки колбэка

Если вы принимаете большие суммы, то пожалуйста, не завершайте оплату заказа по нулевому подтверждению. Потому что отправитель может создать вторую транзакцию на другой адрес, но с большей комиссией, а сеть подтвердит её. Завершайте заказ только после 1-3 подтверждений сети.

Завершайте заказ или пополнение баланса клиентских аккаунтов только при подтвержденной транзакции, с рекомендуемыми тремя подтверждениями сети. В этом случае вы будете уверены, что платеж поступит к вам. Второй пример на языке PHP демонстрирует это.