ПРОСТО И НАДЕЖНО
 
 
Платёжный агрегатор Onpay.ru: 6 лет, 8000 клиентов
Подводим промежуточные итоги...
Бесплатный платёжный модуль для JOOMLA! И еще 15 модулей:
Drupal, Bitrix, OpenCart и другие...
 
 
Партнерские программы и платежные сервисы Moybiz.ru Сервисы для продажи билетов и бронирования номеров в гостиницах Организация приема оплаты на сайте электронных валют, пластиковых карт, платежных терминалов и SMS ВНИМАНИЕ! Информация для покупателей. Как оплачивать товары через Onpay.ru Банковские карты в оффшорной зоне Сервис Torg: площадка для купли-продажи и прием платежей
 
 

Разработчикам

Кому нужно API?
API нужно для веб-программистов и опытных пользователей, желающих создать сложные и глубоко интегрированные сервисы. С помощью API можно:
- создать платежный модуль для любой платформы, системы управления сайтом
- создать автоматический доступ к определенным разделам сайта по подписке
- создать автоматические и полуавтоматические сервисы оплаты, с автоматическим выбором параметров за Клиента (Например, выставлять счет г-ну Иванову 5 числа каждого месяца с автоматическим подсчетом суммы и оплатой в WMZ)

Но главная функция API— это извещение сервера магазина об оплате для автоматизации дальнейших действий (например, автоматическая отправка электронного товара, и проч.) Эту функцию мы уже реализовали для большинства платформ посредством бесплатных модулей...


Версия для печати Версия для печати

Смотрите также

Подробное описание подключения

Спецификация на платежные ссылки

Протокол уведомления о платежах

Пример автоматической организации платного доступа к закрытым разделам сайта

Подключения приема платежей в автоматическом режиме (через API)

Подключение приема платежей в автоматическом режиме необходимо для автоматического уведомления вашего магазина о завершении оплаты заказа клиентом.

Процесс подключения состоит из 3 шагов:
1. Настройка параметров вашего магазина в системе onpay
2. Настройка сайта
3. Тестирование

1. Настройка параметров вашего магазина в системе onpay

Войдите в личный кабинет в системе onpay http://secure.onpay.ru/user/login используя логин и пароль, полученный при регистрации.
Заполните поля:
  • Уведомлять по API - если не включены уведомления, система onpay не будет отсылать магазину данные о платежах
  • Метод отправки запросов в API - формат запросов, отправляемых скрипту "URL API"
  • URL API - адрес вашего скрипта, который будет обрабатывать запросы от системы onpay
  • Пароль для API IN - секретный ключ для вашего магазина (придумайте сами), который будет использоваться для проверки данных скриптом "URL API" и системой onpay

Пример настройки в кабинете для магазина demo:
URL http://secure.onpay.ru/user/login
логин demo1
пароль demodemo
Внимание! В демо-магазине технически возможно принимать деньги. Но вывести их нельзя. Просьба для коммерческой деятельности зарегистрироваться и использовать реальные учетные записи!

2. Настройка сайта

2.1. Скачайте файл onpay.rar на свой компьютер

Распакуйте архив

2.2. Откройте файл db.sql и выполните скрипт создания таблиц в mysql БД вашего сайта.

          	
  CREATE TABLE `operations` (
    `id` int(11) NOT NULL auto_increment,
    `sum` decimal default NULL,
    `user_id` int(11) default NULL,
    `status` int(11) default 0,
    `type` varchar(64) default NULL,
    `comment` varchar(255) default NULL,
    `description` varchar(255) default NULL,
    `date` datetime default NULL,
    PRIMARY KEY  (`id`)
  ) DEFAULT CHARSET=utf8;

  CREATE TABLE `balances` (
    `id` int(11) NOT NULL,
    `sum` decimal default NULL,
    `date` datetime default NULL,
    PRIMARY KEY  (`id`)
  ) DEFAULT CHARSET=utf8;
          	
          
В БД будут созданы 2 таблицы:
operations - список платежей. Поле status - статус оплаты заявки (0 - не оплачена, 1 - оплачена)
balances - таблица балансов пользователей. Поле id - id пользователя в вашей системе

2.3. Откройте файл my_fuctions.php и укажите параметры доступа к БД вашего сайта. Необходимые параметры вы можете узнать у хостинга, на котором размещен ваш сайт.

          	
  function db_connect() {
    // адрес сервера БД
    $db_host = 'localhost:/tmp/mysql';
    // учетная запись - логин
    $db_user = 'mysql_user';
    // учетная запись - пароль
    $db_pass = 'mysql_password';
    // имя БД
    $db_name = 'my_shop_db';

    $link = mysql_connect($db_host, $db_user, $db_pass);
    if (!$link) {
        die('Ошибка соединения с БД: ' . mysql_error());
    } else {
      mysql_select_db($db_name, $link);
    }
    return $link;
  }

  function db_disconnect($link) {
    mysql_close($link);
  }
          	
          

2.4. Отредактируйте файл onpay_functions.php

        	
  function get_constant($name) {
    $arr = array(
           // логин в системе onpay
           'onpay_login' => 'demo', 
           // секретный код вашего интернет ресурса. 
           // Этот код указывается в вашем кабинете в настройках
           'private_code' => 'a2su3ig8y', 
           // URL куда следует вернуться после выполнения первого шага оплаты
           'url_success' => 'http://www.domen.com',
           // флаг - использовать таблицу балансов пользователей, 
           // если установлен false, то метод data_update_user_balance 
           // переопределять не надо, он не будет вызываться
           'use_balance_table' => true,
           // статус для неоплаченной операции в таблице operations
           'new_operation_status' => 0
           );
    return $arr[$name];
  }
        	
        
Измените параметры:
  • onpay_login - ваш логин в системе onpay
  • private_code - "Пароль для API IN" из кабинета управления onpay
  • url_success - URL, на который будет перенаправлен плательщик после выполнения первого шага оплаты
  • use_balance_table - флаг использования таблицы балансов пользователей для стандартной схемы базы данных
Реализуйте получение ID текущего пользователя в функции data_create_operation
        	
  // функция создания операции. 
  // Для дальнейшей обработки платежа используется ID созданной операции
  function data_create_operation($sum) {
    //Определяем ID пользователя, осуществляющего пополнение 
    $userid = 1;                      
    //определяем тип операции 
    $type = "Внешняя";
    //вводим комментарий операции 
    $comment = "Пополнение счета";
    //дополнительный комментарий 
    $description = "через систему Onpay"; 	

    //создаем строку для вставки в базу данных 
    $query = "INSERT INTO `operations` (`sum`,`user_id`, `status`, 
              `type`, `comment`, `description`, `date`) 
              VALUES('$sum', '$userid', ".get_constant('new_operation_status').", '$type', 
              '$comment', '$description', NOW());"; 
    return mysql_query($query); //сохраняем данные в базу 
  }
          
        
Если вы решили не использовать существующую схему базы данных или вам не подходит предложенная, то отредактируйте функции: data_create_operation, data_get_created_operation, data_set_operation_processed, data_update_user_balance
        	
  // функция выборки неоплаченной операции по ID
  function data_get_created_operation($id) {
  	$query = "SELECT * FROM operations WHERE `id`='$id' 
  	          and `status`=".get_constant('new_operation_status');
    return mysql_query($query); 
  }

  // функция обновления статуса операции на оплаченную
  function data_set_operation_processed($id) {
  	$query = "UPDATE operations SET status=1 WHERE id='$id'";
  	return mysql_query($query); 
  }

  // обновление баланса пользователя
  // если параметр use_balance_table установлен в false, то этот метод не вызывается
  // $operation_id - ID в таблице operations, по нему можно получить ID пользователя
  function data_update_user_balance($operation_id, $sum) {
  	//Определяем ID пользователя, осуществляющего пополнение 
  	$operation = data_get_created_operation($operation_id);
  	if (mysql_num_rows($operation) == 1) {
  		$operation_row = mysql_fetch_assoc($operation);
  		$userid = $operation_row["user_id"];

  		//Обновляем данные по счету пользователя 
  		$query = "UPDATE balances SET sum=sum+$sum, date=NOW() WHERE id='$userid'";
  		return mysql_query($query);
  	} else {
  		return false;
  	}
  }
        	
        
Если вы хотите добавить дополнительные параметры к используемой платежной ссылке, измените функцию get_iframe_url_params
        	
  // функция определения параметров платежной формы
  // к примеру, если необходимо добавить e-mail пользователя, который совершает платеж, то
  // добавляется строка к результату '&user_email=vasia@mail.ru'
  function get_iframe_url_params($operation_id, $sum, $md5check) {
  	return "pay_mode=fix&pay_for=$operation_id&price=$sum
  	        ¤cy=RUR&convert=yes&md5=$md5check
  	        &url_success=".get_constant('url_success');
  }
        	
        

2.5. Скопируйте файлы onpay_functions.php, my_functions.php, form.html, request.php и api.php на сервер, где размещен ваш сайт.
Файл form.html отображает форму для ввода стоимости

          	
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html>
    <head>
      <title>Форма создания заявки</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
      <form method="post" action="request.php">
        <table cellpadding="2" cellspacing="0" border="0">
          <tr>
            <td align="right">
              Сумма:
            </td>
            <td>
              <input type="text" name="sum" value="">
            </td>
          </tr>
          <tr>
            <td colspan="2" align="right">
              <input type="submit" name="submit" value="Оставить заявку">
            </td>
          </tr>
        </table>
      </form>
    </body>
  </html>
          	
          
Файл request.php отображает форму системы onpay
          	
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html>
    <head>
      <title>Форма создания заявки</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
  <?
  include 'onpay_functions.php';
  include 'my_functions.php';

  $db_link = db_connect();
  echo process_first_step();
  db_disconnect($db_link);
  ?>
    </body>
  </html>          	  
          	
          
Файл api.php будет использоваться системой onpay для уведомления о поступивших платежах. Проверьте правильность заполнения параметра URL API в личном кабинете http://secure.onpay.ru/user/login
          	
  include 'onpay_functions.php';
  include 'my_functions.php';

  $db_link = db_connect();
  echo process_api_request();
  db_disconnect($db_link);
          	
          

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

3.1 Откройте в браузере форму для ввода стоимости (путь к файлу form.html)

Введите стоимость, нажмите на кнопку "Отправить заявку"

3.2 На появившейся форме (request.php)

Выберите валюту платежа, введите свой e-mail, чекбокс соглашения, код проверки и нажмите "Продолжить"

3.3 Откройте личный кабинет и проверьте поступление заявки (Платежи -> Неоплаченные заявки)

3.4 Для тестирования уведомлений создайте тестовый платеж в личном кабинете (Настройки магазина -> Тестирование)


Проверьте результаты тестирования в личном кабинете (Настройки магазина -> Логи)


 
 
 
 
 
Партнерское соглашение     Лицензия 53709 от 16.10.2007 Copyright 2006-2012, OnPay.ru