Сегодня 6 февраля, четверг ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7278
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Заметки вебмастера самоучки
Заметки вебмастера самоучки
Голосов: 1
Адрес блога: http://neverlex.com
Добавлен: 2010-11-08 20:17:13 блограйдером lexnevermind
 

Код обработки платежей для Новой Интеркассы

2013-12-10 13:29:44 (читать в оригинале)

Всем привет. Сегодня очень короткий и очень полезный пост о приёме платежей с помощью сервиса Интеркасса.

Интеркасса недавно запустила новую версию с крутым и удобным дизайном, а также абсолютно новыми протоколами.

Обитает она пока на поддомене new.interkassa.com в бета-версии и активно предлагает пользователям переход в новый интерфейс. Правда почему-то в уведомлении забыли написать, что нужно изменить запросы. Из-за этого оплата просто перестаёт работать.

Надо сказать, что теперь стало гораздо удобней тестировать приём оплаты и другие функции. И взаимодействие стало намного более функциональным и понятным.

Чего не скажешь о Робокассе, которая заставляет изрядно попортить себе нервы, только для того, чтобы не брать комиссии с плательщиков, а удерживать её с продавца. Недавно имел удовольствие ковыряться с этим вопросом. В Интеркассе этот вопрос решается парой кликов в админке.

Но это лирика. Перейдём к действительно важным вещам. А точнее к паре функций, которых вполне достаточно, чтобы автоматизировать приём оплаты в небольшом интернет-магазине.

Я не хотел написать полный класс взаимодействий с сервисом и использовать по максимуму все возможности (которых немало). Нет. Меня интересует лишь простейшие функции, которые позволяют принимать платёж и проверять результат оплаты.

Вот эти функции. Пользуйтесь на здоровье.

 /** * Функция инициализирует оплату * * @return string $payment_form */ public function InitiatePayment($shop_id, $sum, $payment_id, $payment_desc) { $payment_form = ' <form name="payment" action="https://sci.interkassa.com/" method="post" enctype="utf-8"> <input type="hidden" name="ik_co_id" value="' . $shop_id . '"> <input type="hidden" name="ik_am" value="' . $sum . '"> <input type="hidden" name="ik_pm_no" value="' . $payment_id . '"> <input type="hidden" name="ik_desc" value="' . $payment_desc . '"> <input type="submit" value="Оплатить"> </form>'; return $payment_form; }, где$shop_id - идентификатор кассы$sum - сумма платежа (в формате 0.00)$payment_id - номер заказа$payment_desc - описание платежа /** * Функция проверяет результат оплаты * * @return boolean */ public function CheckResult($shop_id, $secret_key, $post, $test_key) { if ($post['ik_co_id'] != $shop_id) return false;  $ik_key = ($post['ik_pw_via'] == 'test_interkassa_test_xts') ? $test_key : $secret_key;   $data = array(); foreach ($post as $key => $value) { if (!preg_match('/ik_/', $key)) continue; $data[$key] = $value; }  $ik_sign = $data['ik_sign']; unset($data['ik_sign']);  ksort($data, SORT_STRING); array_push($data, $ik_key);  $signString = implode(':', $data); $sign = base64_encode(md5($signString, true)); if ($sign === $ik_sign && $data['ik_inv_st'] == 'success') return true; else return false; }, где$shop_id - идентификатор кассы$secret_key - секретный ключ$post - массив $_POST$test_key - тестовый ключ

Код абсолютно рабочий. Уже принял несколько платежей с его помощью.

Именно эти функции уже успешно используются в JSale и скоро попадут в JCart.

С уважением, Алексей Опанасенко aka Never Lex.
Автор блога Заметки вебмастера самоучки




 


Самый-самый блог
Блогер Рыбалка
Рыбалка
по среднему баллу (5.00) в категории «Спорт»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.