callbacks.payment ✎ Дополнить на GitHub

Обратная связь, вызываемая API для уведомления удаленного сервера приложений о завершении транзакции

НазваниеОбязательныйТипОписание
uid Да String

Идентификатор пользователя

transaction_id Да String

Уникальный идентификатор транзакции

transaction_time Да Date

Время транзакции

product_code Нет String

Код продукта

product_option Нет String

Код выбранного варианта продукта

amount Да int

Общая сумма в виртуальной валюте портала

currency Нет String

Валюта платежа (за исключением платежей в «ok»)

payment_system Нет String

Система оплаты в случае прямых платежей в валюте RUR

extra_attributes Нет String

JSON-кодированные пары ключей/значений, содержащие дополнительные параметры транзакции, которые передает приложение в методе FAPI.UI.showPayment.

Авторизация

Сессия запрещена

Необходимые права:

  • VALUABLE_ACCESS

См. также пример проведения платежа в HTML-приложении с серверной частью на PHP.

  • Обратная связь вызывается 3 раза до получения успешного ответа HTTP. Каждая попытка имеет задержку 5 секунд. Если сервер не отвечает, транзакция будет отменена, а виртуальные деньги возвращены пользователю.
  • Работает только через HTTP GET;
  • Поддерживает только ответы XML (см. примеры таких ответов ниже);
  • Тип содержимого должен быть “application/xml”;
  • В случае ошибки HTTP-заголовок “Invocation-error” должен содержать код ошибки;
  • Разработчик обязан проверять соответствие товара и его цены, передаваемых в параметрах product_code и amount. В противном случае злоумышленник сможет совершать любые покупки в игре за минимальную стоимость;
  • Разработчик должен проверять значение подписи sig из запроса.

Коды ошибок

ИмяКодОписание
UNKNOWN1Неизвестная ошибка
SERVICE2Сервис временно недоступен
CALLBACK_INVALID_PAYMENT1001Платеж неверный и не может быть обработан
SYSTEM9999Критический системный сбой, который невозможно устранить
PARAM_SIGNATURE104Неверная подпись

Варианты ответа

<?xml version="1.0" encoding="UTF-8"?>
<callbacks_payment_response xmlns="http://api.forticom.com/1.0/">
    true
</callbacks_payment_response>
<?xml version="1.0" encoding="UTF-8"?>
<ns2:error_response xmlns:ns2='http://api.forticom.com/1.0/'>
    <error_code>1001</error_code>
    <error_msg>CALLBACK_INVALID_PAYMENT : Payment is invalid and can not be processed</error_msg>
</ns2:error_response>

Ответ

void

Параметры приложения

Данные о сессии пользователя

Метод

Список параметров

Используем для подписи secret_key = session_secret_key
Используем для подписи secret_key = application_secret_key
Используем для подписи secret_key = MD5(access_token + application_secret_key)
secret_key =
Сортируем и склеиваем параметры запроса и secret_key
Рассчитываем MD5 от полученной строки и получаем параметр sig