npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

rbs-ajax

v0.1.3

Published

RBS gateway REST API methods

Downloads

6

Readme

Библиотека для работы с REST API шлюза РБС

NPM пакет

Установка

npm i rbs-ajax

Использование

import payAjax from 'rbs-ajax'

const options = { contextLevel: '../' };
const payXhr = payAjax(options);
payXhr.getSessionStatus({ mdOrder: MDORDER });

document.addEventListener('PAY.SESSION_STATUS', function(data) {
  // Получили данные из getSessionStatus
  console.log(data);
});
document.addEventListener('PAY.ERROR', function(data) {
  // Что-то пошло не так
  console.log(data);
});

В основе работы библиотеки лежат события.

Тип события зависит от вызванного api метода и результата его выполнения. В случае успешного выполнения AJAX запроса вызывается событие (на document) с именем doneEventName. В случае неудачной выполнения — событие с именем failEventName (по умолчанию у всех методов: "PAY.ERROR").

В data будет передана вся информация приходящая от сервера или информация об ошибке.

payAjax

Функция-обертка. В качестве аргумента принимает настройки контекста.

| Имя параметра | Значение по умолчанию | Описание | | --- | --- | --- | | contextLevel | '../../' | Путь до rest api относительно текущей страницы |

Методы

Обертка payAjax содержит методы через которые можно обратиться к REST API:

Аргументы

Каждый метод принимает 2 аргумента: params и options.

params

Объект содержащий поля для запроса. Для каждого метода они свои.

options

Объект с настройками метода. Может содержать 2 поля:

  • doneEventName — название события при успешном заверешении AJAX запроса
  • failEventName — название события при неудачном завершении AJAX запроса.

ВНИМАНИЕ! По умолчанию у всех методов failEventName называется PAY.ERROR.

Есть возможность установить свои значения имен событий. Например:

payXhr.getSessionStatus(
  { mdOrder: "129bd2e3-9118-7ab9-129b-d2e30007cc4a" },
  { doneEventName: "EVENT.SESSION_STATUS", failEventName: "EVENT.FAIL"}
)

getSessionStatus

doneEventName: 'PAY.SESSION_STATUS'

| Имя параметра | Обязательность | Описание | | --- | --- | --- | | mdOrder | Да | Уникальный номер заказа | | language | Нет | Язык на котором будет получена информация о заказе. Две буквы языка. По умолчанию: 'ru' | | jsonParams | Нет | При регистрации заказа (register.do) мерчант может передавать доп. параметры в поле jsonParams.jsonParams имеет вид {"paramName1": "paramValue1", "paramName2": "paramValue2", ...}.Для получения доп. параметров на странице мерчант должен "попросить" конкретные имена, параметров, которые он хочет получить.Например: jsonParams: ["paramName1", "paramName2", ...] |

sendPayment

doneEventName: 'PAY.SEND_PAYMENT'

| Имя параметра | Обязательность | Описание | | --- | --- | --- | | mdOrder | Да | Уникальный номер заказа | | pan | Да | Номер карты. От 16 до 19 символов. Например: "4111111111111111" | | month | Да | Месяц срока действия карты. от 01 до 12 | | year | Да | Полный год срока действия карты. Например: 2019 | | cardholder | Да | Имя владельца карты. Строка. Передавать в верхнем регистре. | | cvc | Нет | Код с обратной стороны карты.Может быть не обязательным если от getSessionStatus вернулось поле cvcNotRequired со значением true. | | email | Нет | Email клиента | | phone | Нет | Телефон. 10 символов. Например: 9124567890 | | bindingNotNeeded | Нет | Флаг. Поле по сохранению связки. Может быть true или false. | | language | Нет | Язык на котором получить информацию о заказе. Две буквы языка. По умолчанию: 'ru' |

sendBindingPayment

doneEventName: 'PAY.BINDING_SEND_PAYMENT'

| Имя параметра | Обязательность | Описание | | --- | --- | --- | | mdOrder | Да | Уникальный номер заказа | | bindingId | Да | Уникальный номер связки.Например: bf68531d-f55b-4a01-9957-a2250b26670e.В getSessionStatus возвращается список доступных bindnigId клиента. | | cvc | Нет | Код с обратной стороны карты.Может быть не обязательным если от getSessionStatus вернулось значение cvcNotRequired: true. | | email | Нет | Email клиента | | phone | Нет | Телефон. 10 символов.Например: 9124567890. | | language | Нет | Язык на котором получить информацию о заказе. Две буквы языка. По умолчанию: 'ru' |

sendGooglePay

doneEventName: 'PAY.GOOGLEPAY'

| Имя параметра | Обязательность | Описание | | --- | --- | --- | | mdOrder | Да | Уникальный номер заказа | | paymentToken | Да | Токен в base64, который вернул Google | | additionalParameters | Нет | Дополнительные параметры. |

deleteMerchantCard

doneEventName: 'PAY.DELETE_MERCHANT_BINDING'

| Имя параметра | Обязательность | Описание | | --- | --- | --- | | mdOrder | Да | Уникальный номер заказа | | bindingId | Да | Уникальный номер связки.Например: bf68531d-f55b-4a01-9957-a2250b26670e.В getSessionStatus возвращается список доступных bindnigId клиента. |

getFee

doneEventName: 'PAY.FEE'

| Имя параметра | Обязательность | Описание | | --- | --- | --- | | mdOrder | Да | Уникальный номер заказа | | pan | Нет (используется bindingId) | Номер карты, на которую необходимо рассчитать комиссию. Если передать '0' то вернет общую комиссию на заказ | | bindingId | Нет (используется pan) | Уникальный номер связки, на которую необходимо рассчитать комиссию. |

sendPaymentOtherWays

doneEventName: 'PAY.OTHER_WAY'

| Имя параметра | Обязательность | Описание | | --- | --- | --- | | mdOrder | Да | Уникальный номер заказа | | paymentWay | Да | Оплата через другие способы: UPOP или Альфа-КликВозможные значения: 'ALFA_ALFACLICK' или 'UPOP'. |

getFinishInfo

doneEventName: 'PAY.FINISH_INFO'

| Имя параметра | Обязательность | Описание | | --- | --- | --- | | mdOrder | Да | Уникальный номер заказа | | language | Нет | Язык ответа |

3DS 2.0

Принцип работы

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

Разработчику остается только вызвать редирект на ACS в нужном месте его кода. Модуль также создаст нужную форму в фоне на текущей странице и переведет пользователя на acsUrl.

Для редиректа в acs необходимо добавить вызов redirectToAcs в соответствующие listner'ы api методов.

ВНИМАНИЕ! Не забудьте добавить обработку перехода в ACS в методе getSessionStatus. После его вызова в ответе может быть acsUrl.

Поддержка

Поддерживается в следующих методах api:

Пример

import { getHandler3DS } from 'rbs-ajax/handle3ds';

// ...

document.addEventListener(
  'PAY.SEND_PAYMENT PAY.BINDING_SEND_PAYMENT PAY.GOOGLEPAY',
  function({ detail }) {
    // В detail вся информация
    const data = detail;

    // Используем редирект в первую очередь
    if ('redirectUrl' in data) {
      window.location = data.redirectUrl;
    }

    // Перенаправление пользователя в ACS
    if ('acsUrl' in data && data.acsUrl !== null) {
      // Вызов метода из модуля handle3ds (rbs-ajax)
      getHandler3DS().redirectToAcs(data);
    }

    // ... другой полезный код
  }
);