#node-yandex-kassa
by Zero One
JavaScript utilities to integrate Yandex.Kassa payment API with your app
npm install --save node-yandex-kassa
Example usage with Express in route handler:
import { checkMD5, buildResponse } from 'node-yandex-kassa';
const { KASSA_SHOP_PASSWORD } = process.env;
app.post('/payments/check_order', (req, res, next) => {
const { body } = req;
const { invoiceId, shopId } = body;
if (!checkMD5(body, KASSA_SHOP_PASSWORD)) {
return res.status(400).send('Validation of MD5 failed');
}
// ...
// Here you might validate request params (for example, `orderNumber` or
// `customerNumber`) if these parameters were passed to payment form
// ...
res.set('Content-Type', 'text/xml');
res.send(buildResponse('checkOrder', 0, shopId, invoiceId));
});Returns boolean.
Checks request body for valid md5 param.
Requests are being made by Yandex.Kassa service and have standart format (with sample data):
| Key | Value |
|---|---|
| requestDatetime | 2011-05-04T20:38:00.000+04:00 |
| action | checkOrder |
| md5 | 8256D2A032A35709EAF156270C9EFE2E |
| shopId | 13 |
| shopArticleId | 456 |
| invoiceId | 1234567 |
| customerNumber | 8123294469 |
| orderCreatedDatetime | 2011-05-04T20:38:00.000+04:00 |
| orderSumAmount | 87.10 |
| orderSumCurrencyPaycash | 643 |
| orderSumBankPaycash | 1001 |
| shopSumAmount | 86.23 |
| shopSumCurrencyPaycash | 643 |
| shopSumBankPaycash | 1001 |
| paymentPayerCode | 42007148320 |
| paymentType | AC |
Returns string.
Generates string with valid XML required by Yandex.Kassa API.
| Code | Status |
|---|---|
| 0 | Success |
| 1 | Authorization error |
| 100 | Transaction denied (only for checkOrder action) |
| 200 | Parse error |
buildResponse('paymentAviso', 0, 13, 1234567);<?xml version="1.0" encoding="UTF-8"?>
<paymentAvisoResponse performedDatetime="2011-05-04T20:38:01.000+04:00"
code="0" invoiceId="1234567"
shopId="13"/>buildResponse('checkOrder', 100, 13, 1234567, 'Given customerNumber does not exist');<?xml version="1.0" encoding="UTF-8"?>
<checkOrderResponse performedDatetime="2011-05-04T20:38:01.000+04:00"
code="100" invoiceId="1234567"
shopId="13"
message="Given customerNumber does not exist"/>For now, for more info on usage and itegration refer to official integration guide and API spec.
This project rocks and uses MIT License
Copyright (c) 2015 Zero One