Генератор форм

Для веб-мастера

Реклама

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

Рейтинг:
Дата: 21 ноября 2009 Просмотры 50746 Комментарии 17

В прошлой статье, я провел краткий обзор новой платежной системы "Интернет Касса". Думаю она Вам также понравилась, как и мне! А поэтому в сегодняшней статье я решил рассказать, как подключить эту платежную систему к своему сайту!

Сразу рекомендую Вам скачать официальную документацию по этой платежной системе здесь и хорошенько с ней ознакомиться!

Итак, процедура работы системы INTERKASSA происходит в 3 этапа:

процедура работы системы INTERKASSA

Этап 1: После выбора товара на витрине (Интернет-сайте) Продавца и последующего нажатия кнопки ОПЛАТИТЬ, Покупатель автоматически переходит к процедуре оплаты товара в системе INTERKASSA. Покупателю предоставляется список принимаемых валют и цены на товары в учетных единицах, которыми оперируют платежные системы.

Этап 2: Покупатель оплачивает товар, используя свои реквизиты в платежной системе. В случае, если платеж происходит удачно - система INTERKASSA уведомляет ПРОДАВЦА о том,  что платеж осуществлен. Система предоставляет на выбор один из нескольких способов уведомления продавцов: серверное сообщение, ICQ сообщение, E-Mail, SMS с подробностями совершенного платежа.

Этап 3: После подтверждения платежа ПОКУПАТЕЛЬ автоматически перенаправляется системой на страницу ПРОДАВЦА, где завершается процедура оформления заказа и указывается способ и время доставки товара.

От слов к практике

Сразу обращаю Ваше внимание, что мы рассмотрим лишь частный случай, для одного товара.

Первым делом необходимо зарегистрироваться (если Вы еще не зарегистрированы) в платежной системе.

Все что вам нужно для регистрации вашего интернет-магазина в системе Интрекасса это:

Шаг 1: Зайти на сайт по этой ссылке:
Шаг 2: Пройти регистрацию
Шаг 3: Под зарегистрированным аккаунтом пройти авторизацию для перехода в админ панель.
Шаг 4: Добавить новый магизин, указав его название и URL.
Шаг 5: В разделе " Управление магазинами" перейти в "Настройки магазина" и произвести настройку.
Шаг 6: В разделе " Управление магазинами" нажать на кнопку "Активировать" напротив только что настроенного магазина. Ваша заявка на активацию будет подана в центр INTERKASSA на рассмотрение.

Остановимся подробнее на шаге 5 – «Настройки магазина»

Настройка магазина является очень важным шагом. От того насколько вы корректно заполните все поля, зависит количество времени, которое понадобится для активации вашего магазина.

Итак, в настройках магазина Вам потребуется ввести следующие данные:

  • Название магазина
  • URL магазина
  • Описание магазина
  • Success URL - URL вашего сайта, на который будет перенаправлен пользователь в случае удачного платежа
  • Метод передачи Success URL
  • Fail URL - URL вашего сайта, на который будет перенаправлен пользователь в случае НЕудачного платежа
  • Метод передачи Fail URL
  • Status URL - URL вашего сайта, на который будет приходить полная информация о платеже.
  • Метод передачи Status URL
  • Почтовые ящики для уведомлений о платежах
  • Ваш текущий секретный ключ (secret_key)

Я перечислил лишь основные настройки магазина, теперь займемся созданием всех необходимых html-страниц Вашего сайта.

Для передачи информации между веб-сайтом продавца и сервисом Interkassa используются 4 основных HTML-формы:

  • Форма запроса платежа - генерируется веб-сайтом продавца для формирования запроса на проведение платежа в сервисе Interkassa Payment Interface и передачи его через веб-браузер покупателя.
  • Форма оповещения о платеже - генерируется сервисом Interkassa Payment Interface для передачи оповещения о платеже на веб-сайт продавца. Оповещение передается без использования веб-браузера покупателя, то есть напрямую от сервера «INTERKASSA» на сервер веб-сайта продавца.
  • Форма выполненного платежа - генерируется сервисом Interkassa Payment Interface в случае успешного выполнения платежа и передается на веб-сайт продавца через веб-браузер покупателя.
  • Форма невыполненного платежа - генерируется сервисом Interkassa Payment Interface в случае невыполнения платежа и передается на веб-сайт продавца через веб-браузер покупателя.

Более детальную информацию Вы найдете в официальной документации!

Итак, для начала создадим простую html-страницу и назовем её pay.html. На ней будет располагаться  Форма запроса платежа. Её Вы найдете в настройках магазина. Выглядит она следующим образом:

<form name="payment" action="http://www.interkassa.com/lib/payment.php" method="post" target="_top">
  <input type="hidden" name="ik_shop_id" value="9CF8F601-BN98-2EBE-449F-9EFC1ERA6CD7">
  <input type="hidden" name="ik_payment_amount" value="10">
  <input type="hidden" name="ik_payment_id" value="1">
  <input type="hidden" name="ik_payment_desc" value="Оплата товара">
  <input type="hidden" name="ik_paysystem_alias" value="">
  <input type="submit" value="Перейти к оплате"/>
</form>

Где:

  • ik_shop_id - Идентификатор магазина зарегистрированного в системе "INTERKASSA".
  • ik_payment_amount - Сумма платежа, которую Вы желаете получить от покупателя
  • ik_payment_id – Идентификатор Вашего товара
  • ik_payment_desc - Описание товара или услуги
  • ik_paysystem_alias - Поле позволяет заранее определить способ оплаты для покупателя. Для того, что бы покупатель мог сам выбрать способ оплаты, оставьте это поле пустым.

Более детальную информацию Вы найдете в официальной документации!

Далее создадим страницу, которая будет показываться покупателю в случае успешной оплаты товара и назовем ее ok.html. Именно URL этой страницы и надо заносить в поле Success URL. Выглядеть она будет следующим образом:

<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  <title>Спасибо!</title>
  </head>
  <body>
   <table  border="1" align="center" cellpadding="10" cellspacing="0">
     <tr>
       <td align="center">
       <h3>Готово</h3>
       <h1>Спасибо!</h1>
       <p>Сразу после зачисления  платежа Вы получите уведомление на E-mail.</p>
       <p>Если  возникнут трудности - свяжитесь с администратором.</p>
     </td>
   </tr>
  </table>
</body>
</html>

Теперь создадим страницу, которая будет показываться покупателю в случае не успешной оплаты товара и назовем ее fail.html. Именно URL этой страницы и надо заносить в поле Fail URL. Выглядеть она будет следующим образом:

<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  <title>Спасибо!</title>
  </head>
  <body>
   <table  border="1" align="center" cellpadding="10" cellspacing="0">
     <tr>
       <td align="center">
         <h3>Оплата  завершилась неуспешно</h3>
         <h1>Оплата не была произведена!</h1>
         <p><b>Оплата не была произведена и товар Вам не  будет выслан.</b></p>
         <p>Если возникнут трудности - свяжитесь с  администратором.</p>
     </td>
   </tr>
  </table>
</body>
</html>

Если в "Настройках магазина" Вы указали "Метод передачи Status URL - OFF", то на этом можно остановиться!

Мы же будем передавать данные на Status URL и метод передачи будет – POST.

Для этого создадим одну php-страницу и назовем её result.php.

При выполнении платежа Web Merchant Interface высылает оповещение о платеже через "Форму оповещения о платеже" на Status URL и передает продавцу реквизиты выполненного платежа в момент его совершения.

Более детальную информацию Вы найдете в официальной документации!

Здесь рекомендуется проверять следующие данные:

  1. Проверить, действительно ли данные переданы от сервиса Interkassa Payment Interface (Проверка источника данных)
  2. Проверить, не исказились ли данные в процессе передачи (Проверка целостности данных и электронной подписи)
  3. Проверить сумму платежа
  4. Проверить идентификатор получателя (Shop ID)
  5. Проверить статус проведения платежа (success или fail)

Тут у Вас наверное возникнет вопрос: "А как же это все проверить?".

Да очень просто! Во время оповещения о платеже сервисом Interkassa Payment Interface формируется контрольная подпись, которая учитывает " Secret Key", известный только Вам и сервису Interkassa Payment Interface.

Вот её мы и будем проверять!!!

Ознакомившись с документацией видно, что при формировании контрольной подписи сервис Interkassa Payment Interface "склеивает" значения полей, передаваемых "Формой оповещения о платеже", в одну строку с разделителем – ":", в следующем порядке:

  • Идентификатор магазина (ik_shop_id);
  • Сумма платежа (ik_payment_amount);
  • Идентификатор платежа (ik_payment_id);
  • Способ оплаты (ik_paysystem_alias);
  • Пользовательское поле (ik_baggage_fields);
  • Состояние платежа (ik_payment_state);
  • Внутренний номер платежа в системе «INTERKASSA» (ik_trans_id);
  • Курс валюты (ik_currency_exch);
  • Плательщик комиссии (ik_fees_payer);
  • Секретный ключ (secret_key);

После формирования этой строки, к ней приминают алгоритм MD5, после чего все буквы латинского алфавита переводятся в верхний регистр.

Выглядит это все примерно так:

<?php

/*Извлекаем данные из массива POST */
extract($_POST);
$ik_key = 'ddsfwerwegfhtr';//Сюда  необходимо вписать Ваш Secret Key
$amount = '10';//Сюда  необходимо вписать сумму платежа

/* Если контрольная подпись не передана, выводим ошибку */
if (empty($ik_sign_hash)){
   die ('Error: Не переданы  параметры');
} 

/* Формирование контрольной подписи */
$sing_hash_str =  $ik_shop_id.':'.$amount.':'.$ik_payment_id.':'.
                  $ik_paysystem_alias.':'.$ik_baggage_fields.':'.
                  $ik_payment_state.':'.$ik_trans_id.':'.
                  $ik_currency_exch.':'.$ik_fees_payer.':'.
                  $ik_key; 

/* Применяем алгоритм MD5 и переводим буквы в верхний  регистр */
$sign_hash  = strtoupper(md5($sing_hash_str));

/* Проверка контрольной суммы */
if ($_POST['ik_sign_hash'] === $sign_hash){
   /* Отправляем товар покупателю*/
}
else {
   die  ('Error: Неверная контрольная сумма');
}
?>

На этом все! Если что-то не понятно оставляйте свои комментарии!

Оцените эту статью:



Похожие статьи
Интересно почитать

    Получать новые материалы этого сайта на свой email адрес?

    Отправлять мне комментарии по эл. почте?

Простая CRM

Нашли ошибку в тексте

Система Orphus
https://biznesguide.ru/coding/86.html
4,12 из 5 на основе 26 оценок.