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

Запрос улучшений, интеграции с различными системами и т.д.
sasha181
Сообщения: 134
Зарегистрирован: 2012-02-27 15:58:24
Откуда: Краснодар/Саранск
Контактная информация:

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

Сообщение sasha181 » 2015-12-11 15:10:27

Доработал тут немного модуль оплаты 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.
Вложения
hosts.zip
(3.45 КБ) 1969 скачиваний

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

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

Сообщение Alex Keda » 2015-12-11 15:59:21

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

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

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

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

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

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

sasha181
Сообщения: 134
Зарегистрирован: 2012-02-27 15:58:24
Откуда: Краснодар/Саранск
Контактная информация:

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

Сообщение sasha181 » 2015-12-15 1:00:12

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

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

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

Сообщение Alex Keda » 2015-12-15 1:08:25

если полезные переделки - выкладывайте.
включу в релиз ...
Убей их всех! Бог потом рассортирует...

sasha181
Сообщения: 134
Зарегистрирован: 2012-02-27 15:58:24
Откуда: Краснодар/Саранск
Контактная информация:

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

Сообщение sasha181 » 2015-12-15 1:14:02

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


Вернуться в «Запрос улучшений»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей