nazbav / vk-coin-api
Library for VK Coin API.
Requires
- php: >=5.4
- ext-curl: *
- ext-json: *
This package is auto-updated.
Last update: 2020-08-26 06:48:40 UTC
README
Задать вопрос можно в беседе. Библиотека для работы с VK Coin API. Основана на "документации".
Подключение
composer require nazbav/vk-coin-api
- Через Composer:
include "../vendor/autoload.php"; $coin = new \nazbav\VkCoinAPI\VkCoin(211984675, "45vyv45KJMKouj9retghrebtvrhtrehryvt54ONopiino");
- С обработкой исключений:
include "../vendor/autoload.php"; try { $coin = new \nazbav\VkCoinAPI\VkCoin(211984675, "45vyv45KJMKouj9retghrebtvrhtrehryvt54ONopiino"); //ваш код... } catch (VkCoinException $e) { echo $e; }
Параметр | Тип | Описание |
---|---|---|
$merchantId | int | ID странички, для которой был получен платёжный ключ |
$key | string | Платёжный ключ |
$checkResponse | string | Отлов ошибок, по умолчанию true (см. Получение ошибок ниже). |
Функции
CallBack | Транзакции
Установка callBack.
$coin->callBack('https://example.org/callback');
Удаление callBack.
$coin->callBack();
Параметр | Тип | Описание |
---|---|---|
url | string | Адрес для отправки уведомлений |
Валидация запроса:
$request = json_decode(file_get_contents('php://input'), true); // Проверка наличия полей: id, from_id, amount, payload, key if (!empty($request) && //... isset($request['key']) ) { if ($coin->getFunc()->validationKey( $request['id'], $request['from_id'], $request['amount'], $request['payload'], $request['key'] )) { //Код... } }
Параметр | Тип | Описание |
---|---|---|
id | int | номер транзакции |
from_id | int | от кого |
amount | int | Количество |
payload | int | Число от -2000000000 до 2000000000. |
key | string | Ключ |
Получение списка неудавшихся запросов
$coin->logs();
Параметр | Тип | Описание |
---|---|---|
status | int | Получение логов |
Настройка магазина
Установка названия магазина
$coin->setName('CoinShop');
Параметр | Тип | Описание |
---|---|---|
name | string | Название магазина |
Получение списка транзакций
Пример:
$coin->tx(); //type 1 -- получение транзакций по ссылке $coin->tx(2, -1); // получение транзакций магазина (первые 100)
Параметр | Тип |
---|---|
type | int |
last | int |
Перевод
Пример:
$coin->send(211984675, $coin->toCoin(1));//Отправка одного коина $coin->send(211984675, 1, false, true);//отправка 1% баланса магазина $coin->send(211984675, 1, true);//отправка 1 коина
Параметр | Тип | Описание |
---|---|---|
to | int | ID пользователя, которому будет отправлен перевод |
amount | int | Сумма перевода в тысячных долях (500 = 0,500 коин) |
fromFloat | bool | amount задан в float (см. функции библиотеки ниже)? |
fromPercent | bool | amount задан в процентах? |
Получение баланса
Пример:
$coin->score([211984675]); $coin->score(); //Для вывода баланса текущего пользователя
Параметр | Тип |
---|---|
userIds | array |
Получение ссылки на оплату
Пример:
$coin->getFunc()->link(); // vk.com/coin#tMERCHANTID - сылка для **обычной** оплаты! $coin->getFunc()->link(15000);//sum $coin->getFunc()->link(15000, 123456); //sum, payload $coin->getFunc()->link(15000, 0, false); //sum, payload, fixed_sum = false $coin->getFunc()->link(15000, 0, false, false); //sum, payload, fixed_sum = false, hex = false
Параметр | Тип | Описание |
---|---|---|
sum | int | Сумма перевода |
payload | int | Любое число от -2000000000 до 2000000000. Поставь 0, дальше сделаем все сами ;) |
fixed_sum | bool | Фиксация суммы перевода |
hex | bool | Генерация hex-ссылки |
Псевдонимы (Aliases)
Их вы можете указывать в параметре метода, для упращения работы.
Имя | Псевдоним | Описание |
---|---|---|
set | config | Параметры магазина |
set | settings | Параметры магазина |
tx | getTransactions | Список транзакций |
tx | transactions | Список транзакций |
link | getPayLink | Платежная ссылкка |
link | getLink | Платежная ссылкка |
send | transfer | Отправка перевода |
send | sendTransfer | Отправка перевода |
send | pay | Отправка перевода |
alias | getAliases | Список псевдонимов |
alias | aliases | Список псевдонимов |
score | getBalance | Баланс игрока |
score | balance | Баланс игрока |
Формат ответа
Имя поля | Тип | Описание |
---|---|---|
status | bool | true , если запрос выполнен без критических ошибок. |
response | array | Массив с данными (за место него может быт выдан error ) |
error | array | Для получения этого массива см. Получение ошибок |
Данному формату не подчиняются методы начинающиеся с $coin->getFunc()
.
Получение ошибок
По стандарту библиотека сама обрабатывает ошибки и выдает VkCoinException на этот счет. Для того чтобы самостоятельно обрабатывать ошибки необходимо передать всего один параметр при инициализации:
include "../vendor/autoload.php"; $coin = new \nazbav\VkCoinAPI\VkCoin(211984675, "45vyv45KJMKouj9retghrebtvrhtrehryvt54ONopiino", true);
Error code 100
В случай если библиотеке не удалось получить данные c сервера, и т.д. (ошибки curl). Будет выдана 100 ошибка:
{"status":false, "error":{ "code":100, "message":"Описание ошибки." } }
Функции библиотеки
Получение Key
$coin->getFunc()->getMerchkey();
Получение MerchantId
$coin->getFunc()->getMerchantId();
Перевод числа с плавающей точкой в коины
$coin->getFunc()->toCoin(100.000); //100000 $coin->getFunc()->toCoin(100.435); //100435
Пример: отправка 1 коина (1.000) пользователю:
$coin->send(211984675, $coin->getFunc()->toCoin(1));//1000 $coin->send(211984675, $coin->getFunc()->toCoin(1.000));//1000
Перевод коинов в число с плавающей точкой
$coin->getFunc()->toFloat(100000); //100.000 $coin->getFunc()->toFloat(100435); //100.435
Пример: запрос баланса мерча, разбор ответа, конвертация в float:
$coin->getFunc()->toFloat($account1); //float(124414.662)
Получение процента (A) от числа (B)
$coin->getFunc()->toFloat($coin->getFunc()->getPercent(75, $coin->getFunc()->toCoin(1)));//75% от 1 коина (1,000)
Пример: 75% от 10.000 VKC = 7.500 VKC:
$coin->getFunc()->toFloat($coin->getFunc()->getPersent(75, $coin->getFunc()->toCoin(10)));
Процент числа A от числа B
//Сколько процентов занимает 1 коин от 100 коинов $coin->getFunc()->whatPercent($coin->getFunc()->toFloat(1),$coin->getFunc()->toFloat(100));
Пример: на сколько процетов баланс пользователя id1* больше баланса пользователя id2*:
$coin->getFunc()->whatPercent($account2, $account1)
Сколько процентов составляет баланс пользователя id2* от баланса пользователя id1*:
$coin->getFunc()->whatPercent($account1, $account2)
Даные в примерах:
$balance = $coin->score([1*, 2*])['response']; $account1 = $balance[2*];