Skip to content

Latest commit

 

History

History
95 lines (68 loc) · 3.49 KB

README.md

File metadata and controls

95 lines (68 loc) · 3.49 KB

Meteor Paybox.money integration

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

Установка

meteor add boomfly:meteor-paybox

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

import React from 'react'
import ReactDOM from 'react-dom'
import Paybox from 'meteor/boomfly: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'