Svoboda | Graniru | BBC Russia | Golosameriki | Facebook

Сигнатура метода

Отображает диалог оплаты для конечного продукта. Для успешной оплаты серверный callback со стороны разработчика должен подтвердить оплату, иначе оплата закончится неудачей и средства будут возвращены пользователю. После успешного завершения транзакции приложение получит уведомление «ok» и JSON с amount как данные, иначе он получит уведомление «error».

FAPI.UI.showPayment(
    name,
    description,
    code,
    price,
    options,
    attributes,
    currency,
    callback,
    uiConf
);
ИмяТребуетсяТипОписание
nameДаStringНаименование продукта, например: 1 яблоня
descriptionДаStringОписание продукта, например: Золото позволяет покупать полезные вещи в игре
codeДаStringИдентификатор продукта, кодирующий продукты, сумму и т. п. в свободном формате
priceДаintОбщая стоимость в виртуальной валюте портала
optionsНетStringУстарело. Всегда null.
attributesНетStringКодированные JSON пары ключей/значений, содержащие дополнительные параметры транзакции, которые будут переданы на сервер
currencyНетStringВалюта платежа, на данный момент поддерживается только ok (по умолчанию)
callbackНетStringfalse (по умолчанию) - обновить приложение после успешного выполнения транзакции, true - не обновлять приложение, а уведомить с помощью обратной связи (см. раздел API_callback)
uiConfНетStringКодированные JSON пары ключей/значений, содержащие конфигурацию для отображения UI диалога оплаты. См. раздел «Возможные значения атрибута uiConf» ниже.

Возможные значения атрибута uiConf

КлючТребуетсяТипОписание
popLayer.payment.cards.mastercardOnlyНетBooleanУказывает, требуется ли отображение инструкций о том, что оплата возможна только с помощью Mastercard
popLayer.payment.customНетStringИмя относящегося к приложению заголовка и описание на экране платежа
popLayer.payment.sms.enabledНетBooleanУказывает, требуется ли отображение способа оплаты через SMS, если для оплаты используется валюта RUR
popLayer.payment.productHashНетStringВалидационный хеш для защиты цены от подделки.
Хеш должен быть сгенерирован только на сервере, поскольку секретный ключ приложения не должен быть доступен на клиенте.
Валидация включается по запросу в поддержку

productHash содержит шестнадцатеричное представление SHA-256 от UTF-8 строки code:price:secretKey

Например, для продукта Apple с ценой 5ОК и секретным ключом приложения 9DC54A7008D30D1E0E748F37:

popLayer.payment.productHash = SHA-256(“Apple:5:9DC54A7008D30D1E0E748F37”) = 00d8ff0c8c997fae89922dde39868da0fd4dedac8f18dfc1cced427b35c52155

Пример вызова

/*
* Пример вызова showPayment().
* Внимание! Сервер должен подтвердить оплату, иначе списывание средств пользователя не происходит.
*/
function showPayment() {
    FAPI.UI.showPayment("Яблоко", "Это очень вкусно!", 777, 1, null, null, "ok", "true");
}

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

Отображает диалог оплаты для конечного продукта. Для успешной оплаты серверный callback со стороны разработчика должен подтвердить оплату, иначе оплата закончится неудачей и средства будут возвращены пользователю. После успешного завершения транзакции приложение получит уведомление «ok» и JSON с amount как данные, иначе он получит уведомление «error».

Функция API_callback может быть вызвана со следующими параметрами:

Коллбек для случая успешного проведения платежа

Веб-версия

method: “showPayment”

result: “ok”

data: “{‘amount’:’5’}”

Мобильная версия

method: “showPayment”

result: “ok”

data: “ok”

Коллбек для случая отмены платежа

method: “showPayment”

result: “error”

data: “cancel”

Коллбек для случая пополнения счета через телефон

В данный момент такой коллбек поддерживается только в мобильной версии платежной системы

В случае прихода такого коллбека между пополнением счета и проведением игрового платежа может быть задержка

method: “showPayment”

result: “ok”

data: “phone”

Коллбек для случая пополнения счета через карту

В данный момент такой коллбек поддерживается только в мобильной версии платежной системы

В случае прихода такого коллбека между пополнением счета и проведением игрового платежа может быть задержка

method: “showPayment”

result: “ok”

data: “card”

Серверный коллбек

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

Чтобы платеж был успешно завершен, вы должны подтвердить его.

Подробная информация о валидации игрового платежа может быть найдена здесь: callbacks.payment

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

https://callback.serice/callback_path
   ?transaction_id=632264039936
   &sig=60717782e6d0288aa730f85561fe1743
   &uid=1234567890
   &amount=5
   &method=callbacks.payment
   &transaction_time=2019-04-26 14:11:56
   &product_code=qCoins
   &extra_attributes=[]
   &application_key=APPLICATION_PUBLIC_KEY
   &call_id=1556277116081

Пример коллбека при мобильном платеже

Обратите внимание, что в коллбеке мобильного платежа всегда передается поле extra_attributes

https://callback.serice/callback_path
   ?transaction_id=632264214528
   &sig=aae5be58d0ab4eaf54db033b9d00b95c
   &uid=1234567890
   &amount=1
   &method=callbacks.payment
   &transaction_time=2019-04-26 14:12:35
   &product_code=777
   &extra_attributes={"launcher":"on"}
   &product_option=
   &application_key=APPLICATION_PUBLIC_KEY
   &call_id=1556277155234

Пример коллбека с использованием attributes

Допустим, что вы вызвали платеж со значением параметра attributes = ”{"key": "value"}”

https://callback.serice/callback_path
   ?transaction_id=632264756480
   &sig=8226ef4f8b92bb11a406075d6f875da6
   &uid=1234567890
   &amount=1
   &method=callbacks.payment
   &transaction_time=2019-04-26 14:14:38
   &product_code=777
   &extra_attributes={"key": "value"}
   &application_key=APPLICATION_PUBLIC_KEY
   &call_id=1556277278594

Примеры диалога платежа

В результате выполнения функции пользователю будет показан диалог для подтверждения платежа

Пример диалога подтверждения платежа

Веб-версия

Мобильная версия

Пример диалога об успешном проведении платежа

Если пользователь подтвердил платеж, а ваш коллбек-сервис провалидирует серверный коллбек, то пользователю будет показано окно с информацией о завершении игрового платежа

Веб-версия

Мобильная версия

Пример диалога об ошибке проведения платежа

Веб-версия

Мобильная версия