Страница 1 из 1

Доработка модуля оплаты onpay.ru

Добавлено: 2015-12-11 15:10:27
sasha181
Доработал тут немного модуль оплаты onpay.ru

-- добавил возможность переключать комиссию на получателя. В старой версии комиссия бралась с плательщика в любом случае
-- добавлена валидация post запроса md5 подписью при перенаправлении пользователя на onpay для оплаты (для опции Запрет платежей без API в кабинете onpay)
-- если у пользователя есть подтверждённый телефон, он автоматически подставляются в форму оплаты на onpay

Первая опция правда реализована только в самом коде (переменная $price_final)

Стоит отметить, что при её включении в теории должны более корректно обрабатываться платежи, принятые в другой валюте. В варианте, когда комиссию платит плательщик были проблемы с такими платежами. Возникали скорее всего из-за нескольких конвертаций по разным курсам. В результате, уведомление о платеже от onpay содержала другую сумму платежа (отличалось на копейки, но биллинг не принимал в итоге.

А вот в связке 1-й и 2-й доработок сумма берётся из другого поля уведомления о платеже от onpay. В этом поле используется именно та сумма, которая была выставлена по счёту.

В целом, если $price_final добавить в настройки модуля, может кому-то ещё пригодится, т.к. брать комиссию с пользователя в каком-то смысле не солидно, если пытаешься косить под большую компанию ))

Там есть заморочка в коде, на первый взгляд безсмысленная :

Код: Выделить всё

$Send['price_md5'] = number_format($Send['price'], 2, '.', '');
if(substr($Send['price_md5'], -1) == "0") $Send['price_md5'] = number_format($Send['price'], 1, '.', '');

Но смысл в ней есть. Это особенности валидации onpay.

Доработка модуля оплаты onpay.ru

Добавлено: 2015-12-11 15:59:21
Alex Keda

Код: Выделить всё

$price_final = true;
if($price_final) $amount_field = 'paid_amount';
else $amount_field = 'order_amount';

непонял вот этого...

Отправлено спустя 13 минут 11 секунд:
и, я так понимаю у вас не последняя версия биллинга
поскольку в последней больше нет User[Mobile] - оно вынесено в параметры...

Отправлено спустя 6 минут 48 секунд:
причесал, подправил под последние изменения, закоммитил.

и, просьба следовать в написании функций сложившейся традиции.
т.е. не isset а IsSet
и т.д =)

Доработка модуля оплаты onpay.ru

Добавлено: 2015-12-15 1:00:12
sasha181
Понял. Исправлюсь )
Да, билинг не последний. Есть ряд переделок, которые при обновлениях приходится портировать. Поэтому не с каждым релизом обновляюсь.

Доработка модуля оплаты onpay.ru

Добавлено: 2015-12-15 1:08:25
Alex Keda
если полезные переделки - выкладывайте.
включу в релиз ...

Доработка модуля оплаты onpay.ru

Добавлено: 2015-12-15 1:14:02
sasha181
Да, нет. там больше под себя заточено несколько моментов. Если была б вероятность, что будут другим полезны, я бы выложил уже. Да и если быть честным, то не столько количество переделок (их не так уж и много), сколько нехватка времени мешает обновляться всегда. По опыту, это обычно 3-4 часа ночного времени всегда занимало. Сначала обновить, потом перенести изменения на новый код, потом ещё всё протестить.