forum.bitel.ru http://forum.bitel.ru/ |
|
Снятие комиссии в пользу организации "на лету" http://forum.bitel.ru/viewtopic.php?f=45&t=9542 |
Страница 1 из 1 |
Автор: | shrm [ 05 авг 2014, 17:00 ] |
Заголовок сообщения: | Снятие комиссии в пользу организации "на лету" |
Добрый день! Установили модуль, оттестировали с процессинговым центром - платежи приходят абоненту. С этой стороны все нормально. Но у нас возник вопрос: Можно ли доработать (если можно, то закажем доработку) модуль, что бы снималась комиссия в пользу нашей организации до поступления ден. средств на счет пользователя "на лету". С суммы пользователя берет комиссию проц. центр и плюсом хотим мы еще небольшой процент в пользу нашей организации, т.е.: Пользователь оплатил картой через процессинговый центр 100р., процессинговый центр отправляет сумму 100р. в биллинг на счет пользователя, так вот - можно ли на лету откусить 2р., чтобы пользователю попало 100р -2р (это если в приход), или 98р в приход а 2р. в расход (соответсвенно, чтобы пользователь видел в личном кабинете, что 2р. это комиссия). |
Автор: | stark [ 05 авг 2014, 17:17 ] |
Заголовок сообщения: | Re: Снятие комиссии в пользу организации "на лету" |
А нельзя ему 100 рублей зачислить?. А потом расход на 2 рубля повесить. Можно сделать в скрипте на событие платежа. |
Автор: | shrm [ 06 авг 2014, 11:29 ] |
Заголовок сообщения: | Re: Снятие комиссии в пользу организации "на лету" |
Добрый день! Большое спасибо за подсказку. Пример скрипта взяли из wiki (для версии 4.5), немного переделали. Платеж разделяется. но в логах вылезают варнинги (у нас версия 6.0) Сам скрипт: import bitel.billing.server.contract.bean.*; import bitel.billing.server.util.*; import java.math.*; payment = event.getPayment(); cid = payment.getContractID(); date = payment.getDate(); bu = new BalanceUtils( con ); pm = new PaymentManager( con ); PAYMENT_TYPE_ICB_1 = 72; //PAYMENT_TYPE_ICB_2 = 2; PAYMENT_TYPE_ICB_BONUS = 73; // бонус за ИКБ платежи if( payment.getPaymentTypeID() == PAYMENT_TYPE_ICB_1 ) { print( "Add ICB bonus payment.." ); bonus = new Payment(); bonus.setPaymentTypeID( PAYMENT_TYPE_ICB_BONUS ); bonus.setDate( date ); bonus.setContractID( payment.getContractID() ); // bonus.setSumma( payment.getSumma().multiply( new BigDecimal( "-0.02" ) ) ); bonus.setSumma( (float)(payment.getSumma() * -0.02 / 1.02) ); bonus.setComment( "Комиссия за платеж через PayOnline" ); bonus.setUserID( 0 ); pm.updatePayment( "new", bonus ); bu.updateBalance( date, cid ); } Варнинги: GENERATE_TIME: 06.08.14 08:57:59 EXECUTION_STOP_TIME: 06.08.14 08:58:00 PROCESS_TIME: 29 OUT: Add ICB bonus payment.. WARNINGS: Function [id:49; title:Комиссия PayOnline]: using deprecated method [public int bitel.billing.server.contract.bean.Payment.getPaymentTypeID()] Function [id:49; title:Комиссия PayOnline]: using deprecated method [public void bitel.billing.server.contract.bean.Payment.setSumma(float)] Function [id:49; title:Комиссия PayOnline]: using deprecated method [public void bitel.billing.server.contract.bean.Payment.setContractID(int)] Function [id:49; title:Комиссия PayOnline]: using deprecated method [public void bitel.billing.server.contract.bean.Payment.setDate(java.util.Calendar)] Function [id:49; title:Комиссия PayOnline]: using deprecated method [public void bitel.billing.server.contract.bean.BalanceUtils.updateBalance(java.util.Calendar,int) throws ru.bitel.bgbilling.common.BGException] Function [id:49; title:Комиссия PayOnline]: using deprecated method [public void bitel.billing.server.contract.bean.PaymentManager.updatePayment(java.lang.String,bitel.billing.server.contract.bean.Payment) throws ru.bitel.bgbilling.common.BGException] Function [id:49; title:Комиссия PayOnline]: using deprecated method [public void bitel.billing.server.contract.bean.Payment.setUserID(int)] Function [id:49; title:Комиссия PayOnline]: using deprecated method [public void bitel.billing.server.contract.bean.Payment.setPaymentTypeID(int)] Function [id:49; title:Комиссия PayOnline]: using deprecated method [public java.math.BigDecimal bitel.billing.server.contract.bean.Payment.getSumma()] Function [id:49; title:Комиссия PayOnline]: using deprecated method [public java.util.Calendar bitel.billing.server.contract.bean.Payment.getDate()] Function [id:49; title:Комиссия PayOnline]: using deprecated method [public int bitel.billing.server.contract.bean.Payment.getContractID()] Еще вопрос: при печати чека для пользователя сумма не разделена по типу платежа - выдается полная сумма одной строкой, вместо двух строк. (это как-то можно побороть?) Ну и последний вопрос: на станице оплаты, перед переходом в процессинговый центр мы должны пользователю сообщать, что с него будет сниматься комиссия. Если мы найдем какой файл править и напишем такое сообщение, то при загрузке обновлений строка сообщения у нас пропадет. Можно ли как-то это обойти? |
Автор: | stark [ 07 авг 2014, 17:34 ] |
Заголовок сообщения: | Re: Снятие комиссии в пользу организации "на лету" |
shrm писал(а): WARNINGS: Function [id:49; title:Комиссия PayOnline]: using deprecated method [public int bitel.billing.server.contract.bean.Payment.getPaymentTypeID()] Открываем описание класса: http://bgbilling.ru/v6.0/javadoc/bitel/ ... yment.html Там кликаем на методе getPaymentTypeID и видим: Цитата: getPaymentTypeID @Deprecated public int getPaymentTypeID() Deprecated. Использовать getTypeId(). И заменяем его на getPaymentTypeId. Если не сложно полученный скрипт выложите в wiki. Варианта добавления платежа для 6.0 там вроде нет. |
Автор: | stark [ 07 авг 2014, 17:38 ] |
Заголовок сообщения: | Re: Снятие комиссии в пользу организации "на лету" |
shrm писал(а): Ну и последний вопрос: на станице оплаты, перед переходом в процессинговый центр мы должны пользователю сообщать, что с него будет сниматься комиссия. Если мы найдем какой файл править и напишем такое сообщение, то при загрузке обновлений строка сообщения у нас пропадет. Можно ли как-то это обойти? http://bgbilling.ru/v6.0/doc/ch01s13.html Цитата: Для предотвращения перетирания файла при обновлении вы можете перед его модификацией создать копию с именем <file_name>.orig (например, style.css.orig). При установке пакета инсталлятор будет проверять перед записью каждого файла наличие файла с таким же именем в текущей установке. Если файл существует, но отличается от того, что в пакете, предпринимается попытка найти файл <file_name>.orig .
Если оригинальный файл существует и не отличается от файла из пакета, то он не будет перезаписан, система сообщит: File doesn't changed <filePath>. Если и оригинальный файл не совпадает со вновь предлагаемым, файл будет записан. Перечень перезаписанных файлов сообщается после завершения процедуры установки, либо обновления после фразы REPLACED FILES:. Вы должны вновь внести в данные файлы требуемые корректировки и снова создать .orig-копию файла. |
Автор: | stark [ 07 авг 2014, 17:41 ] |
Заголовок сообщения: | Re: Снятие комиссии в пользу организации "на лету" |
И еще в конце после обновления платежа нужно кинуть события : Код: EventProcessor.getInstance().publish( new PaymentEvent( userID, payment, editMode ) );
EventProcessor.getInstance().publish( new ContractBalanceChangedEvent( contract.getId(), balanceChange ) ); |
Автор: | dimOn [ 09 авг 2014, 14:40 ] |
Заголовок сообщения: | Re: Снятие комиссии в пользу организации "на лету" |
Цитата: Еще вопрос: при печати чека для пользователя сумма не разделена по типу платежа - выдается полная сумма одной строкой, вместо двух строк. (это как-то можно побороть?) Подробнее поясните про какой именно чек речь. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |