Подключение платежной системы Интеркасса к своему магазину!
В прошлой статье, я провел краткий обзор новой платежной системы "Интернет Касса". Думаю она Вам также понравилась, как и мне! А поэтому в сегодняшней статье я решил рассказать, как подключить эту платежную систему к своему сайту!
Сразу рекомендую Вам скачать официальную документацию по этой платежной системе здесь и хорошенько с ней ознакомиться!
Итак, процедура работы системы INTERKASSA происходит в 3 этапа:
Этап 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 и передает продавцу реквизиты выполненного платежа в момент его совершения.
Более детальную информацию Вы найдете в официальной документации!
Здесь рекомендуется проверять следующие данные:
- Проверить, действительно ли данные переданы от сервиса Interkassa Payment Interface (Проверка источника данных)
- Проверить, не исказились ли данные в процессе передачи (Проверка целостности данных и электронной подписи)
- Проверить сумму платежа
- Проверить идентификатор получателя (Shop ID)
- Проверить статус проведения платежа (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: Неверная контрольная сумма'); } ?>
На этом все! Если что-то не понятно оставляйте свои комментарии!
-
Комментарии (17)
- Сайт