Задать вопрос можно в беседе. Библиотека для работы с 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.
$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-ссылки |
Их вы можете указывать в параметре метода, для упращения работы.
Имя | Псевдоним | Описание |
---|---|---|
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);
В случай если библиотеке не удалось получить данные 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*];