{"_id":"yandex-money-sdk","_rev":"29-5d3667bc2901c11245b70326847964b2","name":"yandex-money-sdk","time":{"modified":"2022-06-29T06:53:20.237Z","created":"2014-10-05T10:35:36.640Z","0.1.0":"2014-10-05T10:35:36.640Z","0.1.3":"2014-10-05T15:29:49.237Z","0.1.4":"2014-10-08T10:31:05.205Z","0.1.5":"2014-10-09T14:58:45.880Z","0.1.6":"2014-10-10T18:15:32.413Z","0.1.7":"2017-09-07T09:04:42.634Z"},"maintainers":[{"email":"romanvt@yamoney.ru","name":"romanvt"},{"email":"i.kashlakov@yandex.ru","name":"mrkashlakov"},{"email":"yalovek@ya.ru","name":"yalovek"},{"email":"ilylomte7@gmail.com","name":"i.lomtev"}],"dist-tags":{"latest":"0.1.7"},"description":"SDK for working with yandex money API","readme":"[![Build Status](https://travis-ci.org/yandex-money/yandex-money-sdk-nodejs.svg?branch=master)](https://travis-ci.org/yandex-money/yandex-money-sdk-nodejs)\n[![Coverage Status](https://coveralls.io/repos/yandex-money/yandex-money-sdk-nodejs/badge.png?branch=master)](https://coveralls.io/r/yandex-money/yandex-money-sdk-nodejs?branch=master)\n\n# NodeJS Yandex.Money API SDK\n\n## Requirements\n\n1. requests == 2.9.x\n\n## Links\n\n1. Yandex.Money API page: [Ru](http://api.yandex.ru/money/),\n[En](http://api.yandex.com/money/)\n\n## Getting started\n\n### Installation\n\nSimply run `npm install yandex-money-sdk`\n\n### Payments from the Yandex.Money wallet\n\nUsing Yandex.Money API requires following steps\n\n1. Obtain token URL and redirect user's browser to Yandex.Money service.\nNote: `client_id`, `redirect_uri`, `client_secret` are constants that you get,\nwhen [register](https://sp-money.yandex.ru/myservices/new.xml) app in Yandex.Money API.\n\n    ```javascript\n    var yandexMoney = require(\"yandex-money-sdk\");\n    // scope is array(e.g. scope = ['account-info', 'operation-history'])\n    url = yandexMoney.Wallet.buildObtainTokenUrl(clientId, redirectURI, scope);\n    // redirect user to url\n    ```\n\n2. After that, user fills Yandex.Money HTML form and user is redirected back to\n`REDIRECT_URI?code=CODE`.\n\n3. You should immediately exchange `CODE` with `ACCESS_TOKEN`.\n\n    ```javascript\n    function tokenComplete(err, data) {\n        if(err) {\n            // process error\n        }\n        var access_token = data.access_token;\n        // save it to DB, config, etc..\n    }\n    yandexMoney.Wallet.getAccessToken(clientId, code, redirectURI, clientSecret,\n        tokenComplete);\n    ```\n\n4. Now you can use Yandex.Money API.\n\n    ```javascript\n    var api = new yandexMoney.Wallet(access_token);\n\n    // get account info\n    api.accountInfo(function infoComplete(err, data) {\n        if(err) {\n            // process error\n        }\n        // process data\n        var balance = data.balance;\n        var user_account = data.account;\n        // etc..\n    });\n\n    // fetch last 3 records of operation history\n    api.operationHistory({ records: 3 }, function operationHisComplete(err, data) {\n        if(err) {\n            // process error\n        }\n        // process data\n        var opertaions = data.operations;\n        var first_title = operations[0].title;\n        // etc..\n    });\n\n    //make request payment and process it\n    var options = {\n        \"pattern_id\": \"p2p\",\n        \"to\": \"410011161616877\",\n        \"amount_due\": \"0.02\",\n        \"comment\": \"test payment comment from yandex-money-nodejs\",\n        \"message\": \"test payment message from yandex-money-nodejs\",\n        \"label\": \"testPayment\",\n        \"test_payment\": true,\n        \"test_result\": \"success\"\n    };\n    api.requestPayment(options, function requestComplete(err, data) {\n        if(err) {\n            // process error\n        }\n        if(data.status !== \"success\") {\n            // process failure\n        }\n        var request_id = data.request_id;\n\n        api.processPayment({\n            \"request_id\": request_id\n            }, processComplete);\n    });\n\n    function processComplete(err, data) {\n        if(err) {\n            // process error\n        }\n        // process status\n    }\n    ```\n\n### Payments from bank cards without authorization\n\n1. Fetch instantce-id(ussually only once for every client. You can store\nresult in DB).\n\n    ```javascript \n    yandexMoney.ExternalPayment.getInstanceId(clientId,\n            function getInstanceComplete(err, data) {\n        if(err) {\n            // process error\n        }\n        var instanceId = data.instance_id;\n        // save it to DB\n    \n    });\n    ```\n\n2. Make request payment\n\n    ```javascript \n    var externalPayment = new yandexMoney.ExternalPayment(instanceId)\n\n    var options = {\n        // pattern_id, etc..\n    };\n\n    externalPayment.request(options, function requestComplete(err, data) {\n        if(err) {\n            // process error\n        }\n        var requestId = data.request_id;\n    });\n    ```\n\n3. Process the request with process-payment. \n\n    ```javascript \n    externalPayment.process({\"request_id\": requestId}, function (err, data) {\n        if(err) {\n            // process error\n        }\n        // process data\n    });\n    ```\n\n## Side notes\n\n1. Each API function recieves a callback in args `err`, `data` and `response`.\nWhere `err` is equal to `null` when status of response is `2**`, `data` is JSONed\nresponse and `response` is a full server response(you can check\n`response.statusCode` for example).\n\n## Running tests\n\n1. Clone this repo, install deps and devDeps.\n2. Create `test/constants.js` using `test/constants.js.sample` as a template. \n3. Run `npm run test` and check the output.\n","versions":{"0.1.3":{"name":"yandex-money-sdk","version":"0.1.3","description":"SDK for working with yandex money API","main":"index.js","scripts":{"test":"mocha"},"keywords":["yandex","money","sdk"],"dependencies":{"request":"2.9.x"},"devDependencies":{"mocha":">= 1.21.0"},"author":{"name":"NBCO Yandex.Money LLC","email":"ermak@yamoney.ru"},"license":"MIT","gitHead":"de600afdcd70a32d9f2fe6efc74a0adfdac10231","_id":"yandex-money-sdk@0.1.3","_shasum":"bacdd53b28d27803ec6fc2bec6667c7cf70f0218","_from":".","_npmVersion":"2.1.2","_nodeVersion":"0.10.32","_npmUser":{"name":"yandex-money","email":"ermak@yamoney.ru"},"maintainers":[{"name":"yandex-money","email":"ermak@yamoney.ru"}],"dist":{"shasum":"bacdd53b28d27803ec6fc2bec6667c7cf70f0218","tarball":"https://registry.npmjs.org/yandex-money-sdk/-/yandex-money-sdk-0.1.3.tgz","integrity":"sha512-sZEgGJ+00eok6pRppnKHErGtDG191rnhKXyO3JOkStL/XhhHqapCiOkI/OnhzQVNfXF/8BvmdVDYNwK1BcW/mQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBO9wc5uyUberk28SSD1QEr+irA++BP+KvlK8QirwZ6OAiEAhqfSDeHGAGOaHvhYNn/US+9eiL2O0srBTispEMCTn7I="}]},"directories":{}},"0.1.4":{"name":"yandex-money-sdk","version":"0.1.4","description":"SDK for working with yandex money API","main":"index.js","scripts":{"test":"mocha"},"keywords":["yandex","money","sdk"],"dependencies":{"request":"2.9.x"},"devDependencies":{"mocha":">= 1.21.0"},"author":{"name":"NBCO Yandex.Money LLC","email":"ermak@yamoney.ru"},"license":"MIT","gitHead":"9f3ed8813740287b5e171d7907e0a95f1d11a112","_id":"yandex-money-sdk@0.1.4","_shasum":"7f9c8d4c250a0c75328e546c4143c16815d3f6c1","_from":".","_npmVersion":"2.1.2","_nodeVersion":"0.10.32","_npmUser":{"name":"yandex-money","email":"ermak@yamoney.ru"},"maintainers":[{"name":"yandex-money","email":"ermak@yamoney.ru"}],"dist":{"shasum":"7f9c8d4c250a0c75328e546c4143c16815d3f6c1","tarball":"https://registry.npmjs.org/yandex-money-sdk/-/yandex-money-sdk-0.1.4.tgz","integrity":"sha512-v+ppB2vtVdOF0LIq3nvbEb/7zxLSLB+2wqZrnqFD06FvOEJdNWWnI8GTcrmG5wRV3Ilth7dQmb4boceuO7atMA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpyM08WE9Dm0du3wG26P1LR8tg5ONht4S995VqDMwoXgIgNx8Myms+FJuKmoBSKi/w/Ma73spGKSrLCNtrg857h90="}]},"directories":{}},"0.1.5":{"name":"yandex-money-sdk","version":"0.1.5","description":"SDK for working with yandex money API","main":"index.js","scripts":{"test":"mocha"},"keywords":["yandex","money","sdk"],"dependencies":{"request":"2.9.x"},"devDependencies":{"mocha":">= 1.21.0"},"author":{"name":"NBCO Yandex.Money LLC","email":"ermak@yamoney.ru"},"license":"MIT","gitHead":"5b35c269c210d159e412056941cd7705c50fafc0","_id":"yandex-money-sdk@0.1.5","_shasum":"98f39245960231c8602286de8830210120d39747","_from":".","_npmVersion":"2.1.2","_nodeVersion":"0.10.32","_npmUser":{"name":"yandex-money","email":"ermak@yamoney.ru"},"maintainers":[{"name":"yandex-money","email":"ermak@yamoney.ru"}],"dist":{"shasum":"98f39245960231c8602286de8830210120d39747","tarball":"https://registry.npmjs.org/yandex-money-sdk/-/yandex-money-sdk-0.1.5.tgz","integrity":"sha512-I67t9Zdaove4SHkFMfhdp1NS2hL25FjUHjwyf8SGxFvZKn8p8D9hRg0Ired0EfiC7DN7yd5TXkUJonXfNsLbtA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEgM3WA0nkA9V7UzDyl9GTL97Z/a+Hh3tBmDh8lCUZ1nAiB88H5+y8hJLEse9XfP/AwKbClrlMzI7hxdkN3AK/LlpA=="}]},"directories":{}},"0.1.6":{"name":"yandex-money-sdk","version":"0.1.6","description":"SDK for working with yandex money API","main":"index.js","scripts":{"test":"mocha"},"keywords":["yandex","money","sdk"],"dependencies":{"request":"2.9.x"},"devDependencies":{"mocha":">= 1.21.0"},"author":{"name":"NBCO Yandex.Money LLC","email":"ermak@yamoney.ru"},"license":"MIT","gitHead":"feab63dbea6dd4674cc7608c3171f4af0242677d","_id":"yandex-money-sdk@0.1.6","_shasum":"4c4e890ceb2ff08bf634636d9d6077b0872c9014","_from":".","_npmVersion":"2.1.2","_nodeVersion":"0.10.32","_npmUser":{"name":"yandex-money","email":"ermak@yamoney.ru"},"maintainers":[{"name":"yandex-money","email":"ermak@yamoney.ru"}],"dist":{"shasum":"4c4e890ceb2ff08bf634636d9d6077b0872c9014","tarball":"https://registry.npmjs.org/yandex-money-sdk/-/yandex-money-sdk-0.1.6.tgz","integrity":"sha512-fHgdJlJ5wmWtUP8OVk48Wi4Aq8wetB3SQhXabzhpuU0gtme36fufRRDwAX7OrANF65N6JnudhmEHQ6BbVnFt2Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuWWelmmyPLFJTyGlhQP103XMFJOpkgxKwOHAOzSJ6HQIhAItQY4jYPgM8og3MKLnXdh4hcfCgnkSBh6JpFEBK6wsf"}]},"directories":{}},"0.1.7":{"name":"yandex-money-sdk","version":"0.1.7","description":"SDK for working with yandex money API","main":"index.js","scripts":{"test":"mocha"},"keywords":["yandex","money","sdk"],"dependencies":{"request":"2.9.x"},"devDependencies":{"mocha":">= 1.21.0"},"author":{"name":"NBCO Yandex.Money LLC","email":"ermak@yamoney.ru"},"license":"MIT","gitHead":"7b2a8a28d828d618c511868ac35c68303d41084f","_id":"yandex-money-sdk@0.1.7","_npmVersion":"5.3.0","_nodeVersion":"6.11.2","_npmUser":{"name":"amel-true","email":"amel.truelife@gmail.com"},"dist":{"integrity":"sha512-vdRko56Vud0KNMkebEhcc7JcgNQvFVRqep1GyWgcxIJ4SDNWkW27eIRLsIxV5y8UL/oXmrG+CID5LwLOFZZnVQ==","shasum":"5ef2fedb5aca41430b2c06cbc6288db66b2812fd","tarball":"https://registry.npmjs.org/yandex-money-sdk/-/yandex-money-sdk-0.1.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUYVwOSErlkNCk/gwyOzvnXtS3+beqsDuk3F1XSgSz5gIgWG9czv/6/XJKOi2UDM5MdOUU1fTDbmQmc/Kud9EmlVk="}]},"maintainers":[{"email":"yalovek@ya.ru","name":"yalovek"},{"email":"i.kashlakov@yandex.ru","name":"mrkashlakov"},{"email":"amel.truelife@gmail.com","name":"amel-true"},{"email":"rakchaev@ya.ru","name":"rakchaev"},{"email":"romanvt@yamoney.ru","name":"romanvt"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/yandex-money-sdk-0.1.7.tgz_1504775081786_0.004167976323515177"},"directories":{}}},"keywords":["yandex","money","sdk"],"author":{"name":"NBCO Yandex.Money LLC","email":"ermak@yamoney.ru"},"license":"MIT","readmeFilename":"README.md","users":{"pdedkov":true,"galixigen":true,"defking":true}}