Purchase integration with https://prodamus.ru/

Client library for ruby apps

Prodamus docs https://help.prodamus.ru/

Example usage:

  • configure connection

    Prodamus.config do |conf| conf.main_payment_form_url = conf.secret_key = end

or

  Prodamus.main_payment_form_url = <payment form provided by prodamus>
  Prodamus.secret_key = <key from main form settings>

Submit callback

Your callback from Prodamus server can be look like this:

data = {
    date: '2022-12-08T10:42:10+03:00',
    order_id: <id in prodamus system>,
    order_num: <id in your system>,
    domain: <your main form>,
    sum: '770.00',
    currency: 'rub',
    customer_phone: '+78005553535',
    customer_extra: '',
    payment_type: 'Оплата картой, выпущенной в РФ',
    commission: '100',
    commission_sum: '770.00',
    attempt: '2',
    callbackType: 'json',
    link_expired: '2022-12-08 11:38',
    products: [
      {
        name: <product name>,
        price: '770.00',
        quantity: '1',
        sum: '770.00'
      }
    ],
    payment_status: payment_status,
    payment_status_description: 'Успешная оплата',
    payment_init: 'manual',
    submit: {
      date: '2022-12-08T10:42:10+03:00',
      order_id: <id in prodamus system>,
      order_num: <id in your system>,
      domain: <your main form>,
      sum: '770.00',
      currency: 'rub',
      customer_phone: '+78005553535',
      customer_extra: '',
      payment_type: 'Оплата картой, выпущенной в РФ',
      commission: '100',
      commission_sum: '770.00',
      attempt: '2',
      callbackType: 'json',
      link_expired: '2022-12-08 11:38',
      products: [{ name: <product name>, price: '770.00', quantity: '1', sum: '770.00' }],
      payment_status: 'success',
      payment_status_description: 'Успешная оплата',
      payment_init: 'manual'
    }
  }

Need get signature from header 'Sign' and verify this data:

sign = request.headers['Sign']
Prodamus.verify(data[:submit], sign)

This method returns 'true' or 'false'.

You must perform some actions in your system to complete purchase if this method returns'true'