Money.ua: руководство для программистов
Инструкция по настройке платежного шлюза Money.ua
Этот раздел предназначен для программистов, которым необходимо реализовать взаимодействие с системой приема платежей Money.ua.
-
Подключение по протоколам Money.ua
- подключение по экспресс-методу — этот тип подключения предполагает минимальное вмешательство в структуру интернет-магазина и реализует все взаимодействие с клиентом на стороне нашего сервера.
- полнофункциональная реализация с системой приема платежей — представлена ниже.
-
Готовые скрипты для работы с Money.ua
Готовые скрипты для подключения нашего платежного решения написаны на языке PHP и обеспечивают интеграцию функций платежей в любой системе.
Содержание раздела
Общее описание системы
При подключении интернет-ресурса (ИР) к платежному движку вы получаете доступ в административную систему — личный кабинет.
Личный кабинет позволяет
- проверять баланс от текущих продаж;
- формировать отчет о продажах за период;
- экспортировать отчеты в бухгалтерскую систему;
Процесс покупки
Покупатель интернет-магазина после выбора покупки желает оплатить товар. Магазин формирует сумму в гривне, которую данный покупатель должен оплатить и предлагает покупателю выбрать желаемый способ оплаты, после чего в платежный интерфейс отправляется сумма к оплате. В зависимости от настроек снятия комиссии покупателю выставляется счет на оплату в выбранной им платежной системе. После удачной покупки интернет-магазину отправляется уведомление об успешной оплате, а клиент возвращается на сайт магазина.
Кодировка полей
По умолчанию кодировка полей воспринимается как UTF-8
.
URL для передачи информации
Запрос на оплату передается на url https://money.ua/salenew.php
Основы протокола
Обмен данными выполняется через http/s-POST
-запрос, в котором передаются три переменные: command
, agent
и sign
.
Переменная agent
является номером магазина в сервисе, который доступен в личном кабинете.
Переменная command
содержит xml-код, который после создания был base64-кодирован и получившаяся строка передается в переменной command
, например:
$command = base64_encode(“pay 56217 ”);
Подробнее о sign
Из чего он состоит:
$command.$password
Последний параметр $password
— это строка-пароль, который известен только торговой точке и сервису платежей.
Для склеенных переменных $command
и $password
необходимо вычислить хэш по алгоритму SHA-256
Т.е. в параметрах php это выглядит так:
$sign = hash('sha256', $command.$password);
Пример такой строки:
A0MzBcdTA0M2RcBbdTA0MzBcIiIsImVudGl0eV90eXBlIjoyfQ==j8YUDiwjShsd7dh4n88ySUXHE874SD
Параметры оплаты
Xml-код, содержащий параметры оплаты, имеет следущий вид:
<data>
<oper></oper>
<pay_type></pay_type>
<pay_subtype></pay_subtype>
<amount></amount>
<order></order>
<order_list></order_list>
<info><![CDATA[ ]]></info>
<pay_email></pay_email>
<pay_restrict>1</pay_restrict>
<pay_comission>1</pay_comission>
<pay_result><![CDATA[ ]]></pay_result>
<pay_return><![CDATA[ ]]></pay_return>
<lang></lang>
<time></time>
</data>
Назначение параметров xml-кода указано ниже:
oper
— тип операции:pay
- реальная оплата,test
- имитация оплатыorder
— порядковый номер поручения в системе учета магазина (целое неповторяющееся число).pay_type
— тип оплаты: 39 – интернет-банкинги, 40 - оплата через шлюз третьей стороны.pay_subtype
— выбор дополнительного типа оплаты в рамкахpay_type
:
для кода39
:
1
— Приват242
— МОНОБАНК3
— А-Банк4
— ПУМБ.online5
— Sportbank6
— IZIBank
для кода40
:
1
— Liqpay (https://liqpay.ua)2
— ПУМБ.online (https://payhub.com.ua)3
— Приват24 (https://privat24.ua)
amount
— номинал оплаты в копейкахorder_list
— base64-кодированный код xml с расширенными данными о поручении (зарезервировано)info
— информация о заказе в системе магазина, для которого формируется оплатаpay_email
— емейл покупателяpay_restrict
— указание сервису о возможности со стороны плательщика изменения суммы цифрового подарочного сертификата: 1 - принять к оплате только указанную сумму, 2 – разрешить принять к оплате свободную сумму.pay_comission
— тип возмещения расходов на прием платежа: 1 - за счет магазина, 2 - за счет Покупателя, обязательный параметрpay_result
— URL на сервере магазина, на который будет передан результат оплаты.lang
— тип языкового интерфейса (ru/ua), не обязательный параметрtime
— время создания поручения в системе магазина в виде 20210130162514—
Выходные параметры
Возврат информации о принятой оплате осуществляется на URL, указанный ранее в команде pay в строке <pay_result></pay_result> методом POST
.
Возвращаемые параметры
Параметры возврата и порядок формирования соответстсвуют порядку формирования платежного запроса, за исключениемтого, что переменная
command
имеет название answer
Xml-код, содержащий параметры ответа, имеет следущий вид:
<answer>
<oper></oper>
<order></order>
<pay_uniq></pay_uniq>
<pay_type></pay_type>
<pay_subtype></pay_subtype>
<paid_amount></paid_amount>
<pay_email></pay_email>
<paid_comission></paid_comission>
<paid_time></paid_time>
<gift_num></gift_num>
<gift_code></gift_code>
</answer>
Назначение параметров xml-кода указано ниже:
oper
— тип операции:pay
- реальная оплата,test
- имитация оплаты, тестовый режимorder
— порядковый номер поручения в системе учета магазина, переданный ранееpay_uniq
— уникальный номер транзакции на стороне сервераpay_type
— тип оплатыpay_subtype
— дополнительный тип оплаты в рамкахpay_type
:
paid_amount
— номинал принятой оплаты в копейкахpay_email
— емейл покупателяpaid_comission
— сумма комиссии в копейках, удержанная с Доверителя за выполнение Поручения.paid_time
— время приема платежа в виде 20210130162514gift_num
— номер сформированного цифрового подарочного сертификатаgift_code
— код сформированного цифрового подарочного сертификата
Когда ваш возвратный URL получит результат оплаты, ваш скрипт должен ответить шлюзу OK
(две большие латинские буквы „O“ и „K“). После этого шлюз прекратит попытки отправить вам результат заново.