Skip to content

Node.js SDK модуль для внедрения приема платежей с баланса QIWI Кошелька путем выставления счета.

License

Notifications You must be signed in to change notification settings

QIWI-API/pull-payments-node-js-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QIWI Wallet Pull API Node.js SDK

Build Status npm (scoped)

Node.js SDK для внедрения прием платежей с баланса QIWI Кошелька путем выставления счета.

Установка и подключение

Установка с помощью npm:

$ npm install @qiwi/pull-rest-api-node-js-sdk --save

Подключение:

const QiwiPullAPI = require('@qiwi/pull-rest-api-node-js-sdk');

Документация

QIWI Wallet Pull API: https://developer.qiwi.com/ru/pull-payments

Авторизация

Для использования SDK требуется: prv_id - ID проекта, api_id - идентификатор для авторизации провайдера в API, api_password - пароль для авторизации в API, подробнее в документации.

const prv_id = 5814662325;
const api_id = 7559058292;
const api_password = 'MzAci8yl2NZgmoZDMZRD*****';

const qiwiRestApi = new QiwiPullAPI(prv_id, api_id, api_password);

Смена prv_id, api_id, api_password на новые:

const new_prv_id = 6814672325;
const new_api_id = 8999058292;
const new_api_password = 'LzAcisncosidsimoZDMZRD*****';

qiwiRestApi.prvId = prv_id;
qiwiRestApi.apiPassword = api_password;
qiwiRestApi.apiId = api_id;

Примеры

Выставление счета

Метод createBill выставляет новый счет на указанный номер телефона fields.user. В параметрах нужно указать: идентификатор счета bill_id внутри вашей системы и дополнительными параметрами fields. В результате будет получена ответ с данными о выставленном счете. Подробнее о доступных параметрах в документации.

const bill_id = '893794793973';

const fields = {
    amount: 1,
    ccy: 'RUB',
    comment: 'test',
    lifetime: '2017-07-25T09:00:00',
    user: 'tel:+799955515**'
};

qiwiRestApi.createBill( bill_id, fields ).then( data => {
    //do with data
});

В результате:

{
    "response": {
        "result_code": 0,
        "bill": {
            "bill_id": "893794793973",
            "amount": "1.00",
            "ccy": "RUB",
            "status": "waiting",
            "error": 0,
            "user": "tel:+799955515**",
            "comment": "test"
        }
    }
}

Платежная форма

Метод createPaymentForm создает платежную форму. В параметрах нужно указать: идентификатор счета transaction то же самое, что bill_id. В результате будет получена ссылка на форму оплаты, которую можно передать клиенту. Подробнее о доступных параметрах в документации.

const bill_id = '893794793973';

const options = {
    transaction: billId,
    iframe: true,
    successUrl: 'https://example.com/successUrl',
    failUrl: 'https://example.com/failUrl',
    pay_source: 'qw'
};

const link = qiwiRestApi.createPaymentForm(options);

В результате:

https://bill.qiwi.com/order/external/main.action?shop=6814672325&transaction=893794793973&iframe=true&successUrl=https%3A%2F%2Fexample.com%2FsuccessUrl&failUrl=https%3A%2F%2Fexample.com%2FfailUrl&pay_source=qw

Статус счета

Метод getStatus проверяет статус оплаты счета. В параметрах нужно указать идентификатор счета bill_id внутри вашей системы, в результате будет получен ответ со статусом счета. Подробнее в документации.

const bill_id = '893794793973';

qiwiRestApi.getStatus(bill_id).then( data => {
    //do with data
});

Ответ:

{
    "response": {
        "result_code": 0,
        "bill": {
            "bill_id": "893794793973",
            "amount": "1.00",
            "ccy": "RUB",
            "status": "waiting",
            "error": 0,
            "user": "tel:+799955515**",
            "comment": "test"
        }
    }
}

Отмена неоплаченного счета

Метод cancel отменяет неоплаченный счет. В параметрах нужно указать идентификатор счета bill_id внутри вашей системы, в результате будет получен ответ с информацией о счете. Подробнее в документации.

const bill_id = '893794793973';

qiwiRestApi.cancel(bill_id).then( data => {
    //do with data
});

Ответ:

{
    "response": {
        "result_code": 0,
        "bill": {
            "bill_id": "893794793973",
            "amount": "1.00",
            "ccy": "RUB",
            "status": "rejected",
            "error": 0,
            "user": "tel:+799955515**",
            "comment": "test"
        }
    }
}

Возврат средств

Методом refund производит возврат средств. В параметрах нужно указать идентификатор счета bill_id, идентификатор возврата refund_id внутри вашей системы и сумму возврата amount. Подробнее в документации.

const bill_id = '893794793973';
const refund_id = '899343443';
const amount = 1;

qiwiRestApi.refund(bill_id, refund_id, amount).then( data => {
    //do with data
});

В результате будет получен ответ с информацией о возврате:

{
    "response": {
        "result_code": 0,
        "refund": {
            "refund_id": "899343443",
            "amount": "1.00",
            "status": "success",
            "error": 0
        }
    }
}

Статус возврата

Метод getRefundStatus запрашивает статус возврата, в параметрах нужно указать идентификатор счета bill_id, идентификатор возврата refund_id внутри вашей системы. Подробнее в документации.

const bill_id = '893794793973';
const refund_id = '899343443';

qiwiApi.getRefundStatus(bill_id, refund_id).then( data => {
    //do with data
});

В результате будет получен ответ со статусом о возврате:

{
    "response": {
        "result_code": 0,
        "refund": {
            "refund_id": "899343443",
            "amount": "1.00",
            "status": "success",
            "error": 0
        }
    }
}

Вспомогательные методы

  • Метод generateId возвращает строку в формате UUID v4, удобно для генерирования bill_id, refund_id:

    const bill_id = qiwiApi.generateId();
    //e9b47ee9-b2f9-4b45-9438-52370670e2a6
  • Метод getLifetimeByDay генерирует дату до которой счет будет доступен для оплаты - lifetime. Входной параметр - сколько дней счет будет доступен, если не указанно, то по умолчанию 45 дней. Метод возвращает строку в формате ISO 8601 UTC+3:00:

    //now: 2018-02-04T17:16:58.033Z
    const lifetime = qiwiApi.getLifetimeByDay(1);
    //2018-02-05T17:16:58.033Z
    //now: 2018-02-04T17:16:58.033Z
    const lifetime = qiwiApi.getLifetimeByDay(0.5);
    //2018-02-05T05:16:58.033Z

Тестирование

$ cd pull-rest-api-node-js-sdk
npm install
npm run test

Требования

  • Node.js v7.0.0, запуск c флагом --harmony
  • Node.js v7.6.0 и выше

или

  • Babel с плагином babel-preset-es2017

Лицензия

MIT

About

Node.js SDK модуль для внедрения приема платежей с баланса QIWI Кошелька путем выставления счета.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published