Платежный API VKCoin
v 0.0.1
Получаем ключ
Перейдите по ссылке vk.com/coin#create_merchant.
Если такого окна не появилось, то сбросьте кеш приложения или попробуйте с компьютера.
Ключ показывается только один раз, сохраните его в надежном месте.
Ссылка на оплату
Ссылка на оплату состоит из трех частей:
- Ваш id (19039187)
2. Сумма перевода в тысячных долях (1000)
3. Payload – любое число от -2000000000 до 2000000000, вернется вам в списке транзаций
Далее их надо объединить в такую ссылку: vk.com/coin#x19039187_1000_ 2000000000
Это и будет ссылка на оплату для пользователя (обратите внимание, что самому себе переводы запрещены). По умолчанию пользователь не может изменить сумму перевода. Если это требуется, сделайте ссылку вида
vk.com/coin#x19039187_1000_2000000000_1 — свободная сумма
vk.com/coin#x19039187_1000_2000000000 — фиксированная сумма
Получение списка транзакций
curl -X POST \
https://coin-without-bugs.vkforms.ru/merchant/tx/ \
-H 'Content-Type: application/json' \
-d '{
"merchantId":19039187,
"key":"aZPK=GpLy&EW634Om7onn2ZdP]Wk0FGyI,bCjShuI1fKtP",
"tx":[1]
}'
В ключе tx можно указать массив id транзакций, если указать [1], то вернуться 1000 последних транзакций со ссылок на оплату. [2] — 100 последних транзакций на текущий аккаунт.
Если указать в параметре lastTx номер последней транзакции то будут возвращены только транзакции после указанной (но не более 1000 и 100 соотвественно).
Перевод
curl -X POST \
https://coin-without-bugs.vkforms.ru/merchant/send/ \
-H 'Content-Type: application/json' \
-d '{
"merchantId":19039187,
"key":"aZPK=GpLy&EW634O7&onn2dPWk0FyI,=CjShu1f",
"toId":2050,
"amount":15
}'
Если передать дополнительный параметр markAsMerchant, то перевод в истории будет помечен как от магазина. При этом будет использовано название магазина а не имя вашего аккаунта.
Получение баланса
curl -X POST \
https://coin-without-bugs.vkforms.ru/merchant/score/ \
-H 'Content-Type: application/json' \
-d '{
"merchantId":19039187,
"key":"aZPK=GpLy&EW634Om7&on............",
"userIds":[2050,54986442]
}'
В userIds можно передать до 100 id пользователей.
Баланс возвращается в тысячных долях. Например:
если в апи вернулся баланс 1000 — это 1 коин
если в апи вернулся баланс 1 — это 0.001 коин
Лимиты
Запрещено делать одновременно два перевода (метод send). Иначе вы получите ошибку ANOTHER_TRANSACTION_IN_PROGRESS_AT_SAME_TIME
Обращения к методу получения транзакций не лимитированы, мы рекомендуем обращаться не чаще 1 раза в секунду.
422, merchantid or key or tx is not valid
Такую ошибку можно получить если не передавать заголовок запроса
Content-Type: application/json
Callback API
curl -X POST \
https://coin-without-bugs.vkforms.ru/merchant/set/ \
-H 'Content-Type: application/json' \
-d '{
"callback": "http://my-super-host.com/callback/",
"merchantId":1,
"key":"<KEY>"
}'
На указанный адрес будут отправляться уведомления о новых переводах совершенных только по сец. ссылкам. Чтобы удалить адрес передайте в параметре callback значение null. Вызывать этот метод можно 1 раз в 15 секунд.
POST запрос, Content-Type application/json. В теле поста структура транзакции как приведено ниже.
{ id: 2627951,
amount: 10,
payload: 10,
created_at: 1555612247,
from_id: 19039187,
to_id: 101,
key: '5bb8fcefd43242773e34eb485f377463' }Ключ key служит для проверки данных он рассчитывается как md5
id;from_id;amount;payload;merchantKey
Ванном примере
2627951;19039187;10;10;<KEY>
Ваш сервер должен ответить текстом OK и 200 статусом. В противном случае будет вторая попытка сделать запрос через ~5 сек.
Чтобы посмотреть логи неудавшихся запросов, передайте параметр status = 1
curl -X POST \
https://coin-without-bugs.vkforms.ru/merchant/set/ \
-H 'Content-Type: application/json' \
-d '{
"status": 1,
"merchantId":101,
"key":"<KEY>"
}'
Название магазина
curl -X POST \
https://coin-without-bugs.vkforms.ru/merchant/set/ \
-H 'Content-Type: application/json' \
-d '{
"name": "My shop 19",
"merchantId":101,
"key":"<KEY>"
}'
Обратите внимание что название может быть закешированно на срок до 5 часов. Сбросить кеш никак нельзя. Вызывать этот метод можно 1 раз в 15 секунд.
Готовые библиотеки
PHP
— https://github.com/slmatthew/vk-coin-php
– https://github.com/digitalstars/vk_api
NodeJS
– https://github.com/fakemancat/vkcoinapi
Python
