
Product
Introducing Tier 1 Reachability: Precision CVE Triage for Enterprise Teams
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.
yandex-money-sdk-ext
Advanced tools
Yandex.Money API pages: Ru, En
npm install yandex-money-sdk-ext
Using Yandex.Money API requires following steps
client_id
, redirect_uri
, client_secret
are constants that you get,
when register app in Yandex.Money API.const YandexMoneySdk = require("yandex-money-sdk-ext");
const clientId = '/* yopur application ID */';
const scope = [
'account-info',
'operation-history',
'operation-details',
'payment-p2p',
'incoming-transfers',
'payment-shop'
];
const redirectURI = 'https://localhost';
const url = YandexMoneySdk.buildObtainTokenUrl(clientId, redirectURI, scope);
After that, user fills Yandex.Money HTML form and user is redirected back to REDIRECT_URI?code=CODE
.
You should immediately exchange CODE
with ACCESS_TOKEN
.
const YandexMoneySdk = require("yandex-money-sdk-ext");
const api = new YandexMoneySdk();
const code = '/* code from query params */';
api.getAccessToken(clientId, code, redirectURI, clientSecret, (err, data) => {
if (err) {
// process error
}
const access_token = data.access_token;
// save it to DB, config, etc..
});
const api = new YandexMoneySdk(access_token);
// Get account info (https://tech.yandex.ru/money/doc/dg/reference/account-info-docpage/)
api.accountInfo((err, data) => {
if (err) {
// process error
}
console.log(data);
/* Data like:
{ account: '410012345678901',
balance: 50.25,
currency: '643',
account_type: 'personal',
identified: false,
account_status: 'named',
balance_details: { total: 50.25, available: 50.25, hold: 0.20 }
}
*/
});
// Fetch last 3 records of operation history (https://tech.yandex.ru/money/doc/dg/reference/operation-history-docpage/)
api.operationHistory({}, (err, data) => {
if (err) {
// process error
}
console.log(data);
/* Data like:
{ next_record: '3',
operations:
[
{pattern_id: '337',
operation_id: '546520000000011223',
title: 'МегаФон (Россия): +7 926 *****66',
amount: 20,
direction: 'out',
datetime: '2017-02-24T12:32:42Z',
status: 'success',
type: 'payment-shop',
group_id: 'pattern_337',
categories: [Object]
},
// ...
]}
*/
});
// Make request payment and process it
const options = {
"pattern_id": "p2p",
"to": "410011161616877",
"amount_due": "0.02",
"comment": "test payment comment from yandex-money-nodejs",
"message": "test payment message from yandex-money-nodejs",
"label": "testPayment",
"test_payment": true,
"test_result": "success"
};
api.requestPayment(options, (err, data) => {
if (err) {
// process error
}
if (data.status !== "success") {
// process failure
}
const request_id = data.request_id;
api.processPayment({
"request_id": request_id
}, (err, data) => {
if (err) {
// process error
}
// process status
});
});
// Create api without access token
const api = new YandexMoneySdk();
api.getInstanceId(clientId, (err, data) => {
if (err) {
// process error
}
const instanceId = data.instance_id;
// save it to DB
});
const options = {
// pattern_id, etc..
};
YandexMoneySdk.requestExternalPayment(instanceId, options, (err, data) => {
if (err) {
// process error
}
const requestId = data.request_id;
});
externalPayment.process(instanceId, {request_id: requestId}, (err, data) => {
if (err) {
// process error
}
// process data
});
Request options are optional, the defaults is:
const api = new YandexMoneySdk("access_token", {
url: 'https://money.yandex.ru',
userAgent: 'Yandex.Money.SDK/NodeJS',
proxy: '' // Optional proxy server like "http://username:password@localhost:3128"
});
err
, data
and response
.
Where err
is equal to null
when status of response is 2**
, data
is JSONed
response and response
is a full server response(you can check
response.statusCode
for example).test/constants.js
using test/constants.js.sample
as a template.npm run test
and check the output.FAQs
Forked SDK for yandex money API
We found that yandex-money-sdk-ext demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.
Research
/Security News
Ongoing npm supply chain attack spreads to DuckDB: multiple packages compromised with the same wallet-drainer malware.
Security News
The MCP Steering Committee has launched the official MCP Registry in preview, a central hub for discovering and publishing MCP servers.