Skip to content
This repository has been archived by the owner on Jul 22, 2020. It is now read-only.
/ vk-coin-api Public archive

PHP библиотека для VK COIN API

License

Notifications You must be signed in to change notification settings

nazbav/vk-coin-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VK Coin API

Задать вопрос можно в беседе. Библиотека для работы с VK Coin API. Основана на "документации".

Подключение

composer require nazbav/vk-coin-api
  1. Через Composer:
include "../vendor/autoload.php";

$coin = new \nazbav\VkCoinAPI\VkCoin(211984675, "45vyv45KJMKouj9retghrebtvrhtrehryvt54ONopiino");
  1. С обработкой исключений:
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*];