node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »

meteor-paybox

Meteor Paybox.money integration

Прием платежей через платежный шлюз Paybox.money для Meteor.js.

Пример использования

import React from 'react'
import ReactDOM from 'react-dom'
import Paybox from 'meteor-paybox'
 
Paybox.config
  secretKey: ''                   # Секретный ключ из настроек магазина 
  merchantId: ''                  # Идентификатор продавца 
  siteUrl: 'https://example.com'
  currency: 'KZT'
  testingMode: true               # Тестовый режим для отладки подключения 
  debug: true
 
 
if Meteor.isServer
  Meteor.methods
    placeOrder: (amount) ->
      params =
        pg_amount: amount
      try
        response = Paybox.initPaymentSync params
      catch error
        response = error
      response
 
if Meteor.isClient
  class PaymentButton extends React.Component
    placeOrder: ->
      Meteor.call 'placeOrder'100(error, result) ->
        window.location.href = result.pg_redirect_url._text # Переправляем пользователя на страницу оплаты 
 
    render: ->
      <button className='btn btn-success' onClick={@placeOrder}>Оплатить 100 KZT</button>
 
  ReactDOM.render <PaymentButton />document.getElementById('app')

API

Paybox.initPayment(params, callback)

Инициализация платежа

params - Объект, полный список допустимых параметров можно посмотреть на странице

callback - Функция обработчик разультата, принимает 2 параметра (error, result)

Доступна синхронная версия функции Paybox.initPaymentSync через Meteor.wrapAsync

Events

Paybox.onResult(callback)

Обработка результата платежа

callback - Функция обработки результата платежа, принимает 1 параметр (params). Полный список параметров на странице

Paybox.onCheck(callback)

Проверка возможности совершения платежа

callback - Функция проверки возможности совершения платежа, принимает 1 параметр (params). Полный список параметров на странице

return - Функция должна вернуть объект с результатом проверки. Результат функции будет конвертирован в xml и отправлен ответом на запрос Paybox.

пример:

Paybox.onCheck (params) ->
  order = Order.findOne params.pg_order_id
  if not order
    pg_status: 'rejected'
    pg_description: "Order with _id: '#{params.pg_order_id}' not found"
  else
    if order.status is OrderStatus.PENDING_PAYMENT
      pg_status: 'ok'
    else if order.status is OrderStatus.CANCELLED
      pg_status: 'rejected'
      pg_description: 'Order cancelled'
    else if order.status is OrderStatus.PROCESSED
      pg_status: 'rejected'
      pg_description: 'Order already processed'