Как получить токен юмани
Перейти к содержимому

Как получить токен юмани

  • автор:

Гайд [Node.JS] Работа с API YooMoney.

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.

_raz0r
безальтернатива

Автор темы
Друг

Привет ✋. Прошлый гайд был про QIWI Wallet, пришло время разбираться с API YooMoney (Яндекс.Деньги в прошлом).
В данном случае у нас уже не будет готовых библиотек для работы с API, делать мы будем все сами, опираясь на документацию.

Что нам нужно?
1) Node.JS (у меня v14.16.1, но самая свежая 14.17.3)
2) Библиотека Needle

Наша задача:
1) Зарегистрировать приложение.
2) Получить временный токен от приложения.
3) Получить вечный токен, он и будет нам нужен для обращения к методам. ​

Регистрация приложения.
Чтобы получить токен, нам нужно создать приложение.
Переходим: https://yoomoney.ru/myservices/new

Заполняем все поля (логотип и галочку с client_secret можно оставить пустыми).
Если у вас нету своего сайта, в Redirect URI можно к примеру вставить ссылку на свой Telegram. Временный токен мы все равно сможем получить.
Далее подтверждаем действие через телефон и наше приложение создалось!

Теперь нам нужен «Идентификатор приложения» (это можно сказать access_token нашего приложения).
Переходим теперь к коду: ​

JavaScript:

const needle = require("needle") // Подключаем Needle для запросов. const clientId = "your_client_id" // Создаем константу с нашим client_id.

Получение временного и постоянного токена пользователя.

Чтобы получить постоянный токен для начала нужно получить временный токен, без него мы не сможем получить постоянный.
Для этого в API существует метод (/oauth/authorize). Параметрами которого являются:
client_id — идентификатор нашего приложения.
response_type — который постоянно равен значению «code»
redirect_uri — страница на которую будет совершен редирект и результат авторизации.
scope — запрашиваемые права доступа. (Все права доступа). Мы будем использовать только «account-info».

Теперь нужно обратиться к этому методу: ​

JavaScript:

const scopes = [ "account-info" ] const postDataAuthorize = < client_id: clientId, response_type: "code", redirect_uri: "https://memz.fun", scope: scopes >needle.post('https://yoomoney.ru/oauth/authorize', postDataAuthorize, headers: < 'Content-Type': 'application/x-www-form-urlencoded' >, (err, resp) => < console.log(resp.body) // выводим ответ. >)

Выполняем код и получаем вот такой ответ:

Нам нужно перейти по этой ссылке из браузера (делать нужно все быстро, потому что ссылка живет 1 минуту).
Снова подтверждаем действие через телефон, в случае успеха нас перебросит на ссылку которую мы указали в параметре redirect_uri.
Смотрим в адресную строку и находим вот это:

Копируем все, что находится после «code». Это и есть наш временный токен.
Теперь получим наконец-то постоянный токен. Для этого существует метод /oauth/token.
Параметры:
code — временный токен.
client_id — идентификатор приложения.
grant_type — постоянно равен значению «authorization_code».
redirect_uri — ссылка на которую будет редирект (можно пустым поле оставить).

JavaScript:

const postDataToken = < code: "your_token", client_id: clientId, grant_type: "authorization_code", redirect_uri: " " >needle.post(`https://yoomoney.ru/oauth/token`, postDataToken, headers: < 'Content-Type': 'application/x-www-form-urlencoded' >, (err, resp) => < console.log(resp.body) >)

В случае успеха, мы получаем вот такой ответ:

Это и есть наш токен, который теперь можно использовать всегда.

Получение баланса аккаунта.

Тут все просто, токен указывается в «headers» в поле ‘Authorization’.

JavaScript:

const authHeader = < headers: < 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': 'Bearer ' + accessToken >> needle.post(`https://yoomoney.ru/api/account-info`, <>, authHeader, (err, resp) => < console.log(resp.body) >)

Подключение способа оплаты ЮMoney для физ. лиц

Укажите название и описание способа оплаты (1), установите галочку «Использовать модуль электронных платежей» и выберите в списке «ЮMoney для физ.лиц» (2). Нажмите на ссылку «Настройки модуля» (3):

В настройках нового метода оплаты (пункт «Настройки модуля») кликните на кнопку «Получить токен ЮMoney»

Подтвердите права в вашем аккаунте Яндекс. В случае, если всё сделано верно, вы увидите сообщение о том, что токен успешно получен и будет отображен в форме настроек платежного метода через несколько секунд;

Номер кошелька в ЮMoney – кошелек, на который будут зачисляться деньги отправителей.

Секрет — параметр из указанного кошелька. Получить значение можно по данной инструкции:

Курс у.е. магазина к валюте кошелька — курс, по которому будет пересчитываться итоговая сумма заказа

Комиссия платежной системы (у.е. магазина) — необязательный параметр, указывается, когда в итоговую стоимость заказа необходимо добавить наценку, изымаемую с магазина платежной системой;

Тип формы — позволяет задать тип оплат в зависимости от целей. «Универсальная форма» — для магазинов «Благотворительная форма» — для благотворительных сборов и пожертвований

Строка «Назначение платежа» — можно использовать метку $INVOICE_ID$ — она автоматически будет заменена на номер оплачиваемого заказа.

«Запрашивать ФИО покупателя», «Запрашивать e-mail покупателя», «Запрашивать телефон покупателя», «Запрашивать адрес покупателя» — необязательные параметры, необходимо активировать только если они действительно необходимы (чтобы отправителю не пришлось заполнять лишние поля). Данные поля будут запрошены на стороне Яндекса.

Важно! Чтобы в ваш магазин корректно в управлении заказами передавались статусы по факту оплаты заказа, вам нужно в настройках в рамках сайта Юмани отметить пункт Отправлять HTTP уведомления.

В рамках способа оплаты у вас на сайте этот пункт активируется автоматически после получения токена, но на сайте Юмани нужно активировать вручную.

Как получить токен yoomoney?

vabka

javascript

  • JavaScript
  • +3 ещё

Как правильно на JS получить обьект успешного платежа от YooKassa?

  • 3 подписчика
  • 20 мар.
  • 389 просмотров

Юмани перестал запрашивать у отправителя денег емайл?

  • 1 подписчик
  • 22 февр.
  • 62 просмотра

flask

  • Flask
  • +1 ещё

Как использовать aiogram + flask (or only aiogram) для обработок платежей в боте телеграм?

  • 1 подписчик
  • 14 февр.
  • 1061 просмотр

node.js

  • Node.js
  • +2 ещё

Не находит платеж yoomoney?

  • 1 подписчик
  • 01 февр.
  • 68 просмотров

python

  • Python
  • +1 ещё

Проблема с Yoomoney и Python, как решить?

  • 1 подписчик
  • 24 янв.
  • 142 просмотра

Как сделать POST запрос имея такую инфу(см. ниже)?

  • 1 подписчик
  • 12 янв.
  • 40 просмотров

api

  • API
  • +1 ещё

Почему Yoomoney API возвращает money_source_not_available?

  • 1 подписчик
  • 24 дек. 2022
  • 88 просмотров

python

  • Python
  • +1 ещё

Как получить постоянный токен в юмани?

  • 1 подписчик
  • 11 дек. 2022
  • 137 просмотров

Узнать информацию о продавце после оплаты на юмани?

  • 1 подписчик
  • более года назад
  • 63 просмотра

LT-Consult • Новосибирск
от 80 000 до 130 000 ₽
от 20 000 до 70 000 ₽
от 70 000 до 110 000 ₽
16 нояб. 2023, в 00:00
150000 руб./за проект
15 нояб. 2023, в 23:57
13000 руб./за проект
15 нояб. 2023, в 23:55
40000 руб./за проект

Минуточку внимания

Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями

  • Svelte минимальный размер сайта?
    • 2 подписчика
    • 1 ответ
    • 3 подписчика
    • 1 ответ
    • 2 подписчика
    • 3 ответа
    • 3 подписчика
    • 1 ответ
    • 2 подписчика
    • 3 ответа
    • 2 подписчика
    • 1 ответ
    • 2 подписчика
    • 1 ответ
    • 2 подписчика
    • 2 ответа
    • 2 подписчика
    • 0 ответов
    • 2 подписчика
    • 0 ответов

    Пытаюсь получить токен для юмани, попробовал через ноду, выводит ошибку Uncaught SyntaxError: missing ) after argument list (at auth.html:17:71)

    Uncaught SyntaxError: missing ) after argument list (at auth.html:17:71) Ошибка, собственно в это строке :

    needle.post('https://yoomoney.ru/oauth/authorize', postDataAuthorize, headers: < 'Content-Type': 'application/x-www-form-urlencoded' >, (err, resp) => < console.log(resp.body) // выводим ответ. >) 

    Отслеживать

    задан 26 июн в 8:33

    17 5 5 бронзовых знаков

    26 июн в 8:47

    0

    Сортировка: Сброс на вариант по умолчанию

    Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.

    • node.js
    • яндекс-касса

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *