Компания IntellectMoney сотрудничает с сервисом OrangeData для проведения онлайн-чеков для интернет магазинов. Orange Data - сервис по аренде онлайн-касс для интернет магазина.
Если вы хотите использовать систему IntellectMoney для проведения онлайн платежей, но при этом у вас есть другой партнер, предоставляющий услуги онлайн-кассы, или собственная касса, то для этого необходимо немного доработать модуль оплаты, установленный на вашем сайте.
Конечно лучше всего воспользоватся услугами онлайн-кассы от партнера IntellectMoney, так как в данном случае Вам вообще ничего не нужно будет делать, потому что все взаимодействие с онлайн-кассой уже реализованы на стороне системы IntellectMoney и интегрированы в стандартные модули оплаты.
При использовании стандартного модуля оплаты весь процесс оплаты заказа представляет из себя следующие шаги:
После того как заказ оплачен необходимо провести соответствующий онлайн-чек через онлайн-кассу.
Таким образом, запрос о проведении онлайн-чека в стороннюю онлайн-кассу необходимо отправлять именно в тот момент, когда в стандартном модуле оплаты происходит обработка запроса от системы IntellectMoney об оплате.
После успешной оплаты заказа система IntellectMoney отправляет запрос об успешной оплате на сайт интернет-магазина с параметром paymentStatus=5. Проще говоря, если передан статус 5, то заказ полностью оплачен.
Рассмотрим код в модуле оплаты для cms bitrix, который обрабатывает данный статус:
if ($this->payment_status == '5') { $arFieldsSuccess = array( "PAYED" => "Y", "PS_STATUS" => "Y", "STATUS_ID" => CSalePaySystemAction::GetParamValue("IM.PAYMENT_PAYEED_STATUS"), "PS_SUM" => $this->recipient_amount, "PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))), "USER_ID" => $this->order["USER_ID"], "PS_STATUS_DESCRIPTION" => GetMessage("IM.PAYMENT_PAYMENT_FOR_ORDER_SUCCESFUL", array("#ORDER_ID#" => $orderId)), "PS_STATUS_CODE" => $this->payment_status ); CSaleOrder::PayOrder($this->order["ID"], "Y"); CSaleOrder::Update($this->order["ID"], $arFieldsSuccess); } |
В строке 298 и 299 происходит изменение статуса заказа. Поэтому сразу после этого необходимо отправлять запрос в сервис онлайн-кассы с информацией по чеку. Информацию по чеку можно будет взять из заказа $this→order["ID"].
Смотрите в данной статье
Есть 2 основных типа чеков:
При полной оплате заказа система IntellectMoney отправляет запрос на сайт интернет-магазина с параметром paymentStatus=5. В этом случае нужно отправлять чек прихода.
При возврате денег клиенту по заказу система IntellectMoney отправляет запрос на сайт интернет-магазина с параметром paymentStatus=8. В этом случае нужно отправлять чек расхода.
Оплата заказа может быть произведена только 1 раз, значит запрос со статусом 5 будет отправлен только один раз. Возврат по заказу можно делать сколько угодно (частичный возврат), значит запросов со статусом 8 может быть много, это необходимо учитывать для формирования корректного чека расхода.
Если в момент отправки запроса на сайт интернет-магазина, он был недоступен, тогда система IntellectMoney будет повторно отправлять запрос, пока не получит положительный ответ (либо закончится время отправки, а это примерно сутки). |
Управлять уведомлениями можно в личном кабинете в настройках магазина. По-умолчанию отправка запроса о возврате по СКО отключена
Более подробно про запросы на сайт интернет-магазина и статусы можно почитать в статье Протокол приема платежей Intellectmoney