forum.bitel.ru http://forum.bitel.ru/ |
|
Не разблокируется доступ по приходу платежа http://forum.bitel.ru/viewtopic.php?f=44&t=8231 |
Страница 1 из 1 |
Автор: | dm777 [ 02 июл 2013, 20:22 ] |
Заголовок сообщения: | Не разблокируется доступ по приходу платежа |
Принимаем оплату через терминалы Сбербанка (online) через Bisys Платеж поступает баланс обновляется, а вот доступ в модуле Inet для сервиса иногда меняется на включен, но в 90% случаев нет, только после того как будет открыт закрыт сервис вручную. Внимание вопрос какую функцию надо использовать в нашем самописном сервлете, что-бы по приходу платежа состояние сервиса менялось. |
Автор: | Amir [ 02 июл 2013, 20:27 ] |
Заголовок сообщения: | Re: Не разблокируется доступ по приходу платежа |
После добавления платежа и коммита в БД: Код: EventProcessor.getInstance().publish( new PaymentEvent( 0, payment ) ); Например: EventProcessor.getInstance().publish( new ContractBalanceChangedEvent( contractId, payment.getSumma() )); Код: paymentManager.updatePayment( payment );
bu.updateBalance( payment.getPaymentDate(), contract ); con.commit(); EventProcessor.getInstance().publish( new PaymentEvent( userId, payment ) ); EventProcessor.getInstance().publish( new ContractBalanceChangedEvent( contract.getId(), payment.getSumma() ) ); |
Автор: | dm777 [ 02 июл 2013, 20:39 ] |
Заголовок сообщения: | Re: Не разблокируется доступ по приходу платежа |
Amir писал(а): После добавления платежа и коммита в БД: Код: EventProcessor.getInstance().publish( new PaymentEvent( 0, payment ) ); Например: EventProcessor.getInstance().publish( new ContractBalanceChangedEvent( contractId, payment.getSumma() )); Код: paymentManager.updatePayment( payment ); bu.updateBalance( payment.getPaymentDate(), contract ); con.commit(); EventProcessor.getInstance().publish( new PaymentEvent( userId, payment ) ); EventProcessor.getInstance().publish( new ContractBalanceChangedEvent( contract.getId(), payment.getSumma() ) ); Спасибо, но увы все так-же |
Автор: | Amir [ 05 июл 2013, 19:10 ] |
Заголовок сообщения: | Re: Не разблокируется доступ по приходу платежа |
Пробовали перезапустить Access/Accounting после изменений в коде? Можно часть кода, где добавляется платеж? |
Автор: | dm777 [ 09 июл 2013, 12:05 ] |
Заголовок сообщения: | Re: Не разблокируется доступ по приходу платежа |
Код: if( paySumm != null && paySumm.compareTo( BigDecimal.ZERO ) != 0 )
{ Payment payment = new Payment(); payment.setTypeId( PAYMENT_TYPE_ID ); payment.setContractId( co.getId() ); payment.setPaymentDate( java.util.Calendar.getInstance().getTime() ); payment.setSumma( paySumm ); payment.setComment( Comm ); payment.setUserId( User.USER_SERVER ); try{ paymentManager.updatePayment( payment ); //bu.updateBalance( java.util.Calendar.getInstance().getTime() , co ); bu.updateBalance( payment.getPaymentDate(), co ); con.commit(); EventProcessor.getInstance().publish( new PaymentEvent( 0 , payment ) ); EventProcessor.getInstance().publish( new ContractBalanceChangedEvent( co.getId(), payment.getSumma() ) ); } catch (Exception e){ return false; } |
Автор: | dm777 [ 15 июл 2013, 19:35 ] |
Заголовок сообщения: | Re: Не разблокируется доступ по приходу платежа |
А воз и ныне там |
Автор: | Amir [ 15 июл 2013, 19:40 ] |
Заголовок сообщения: | Re: Не разблокируется доступ по приходу платежа |
При создании PaymentManager и BalanceUtils используется этот же con? |
Автор: | dm777 [ 16 июл 2013, 12:44 ] |
Заголовок сообщения: | Re: Не разблокируется доступ по приходу платежа |
Код: public class PaymentBisys extends HttpServlet {
private Connection con = null; private static Properties props = new Properties(); protected static String propFile = "/usr/local/BGBillingServer/data/data.properties"; protected static String propbisysFile = "/usr/local/BGBillingServer/data/bisys.properties"; //Переменные из конфиг файла String BisysPass = ""; //пароль для шифрования md5 String AllowIps = ""; //строка содержащая допустимые IP адреса //Переменные содержащие код и описание ошибки String ErrCode = "0"; String ErrText = "OK"; // сегодняшняя дата //Date CURDATE = new Date(); // тип платежа заносимого int PAYMENT_TYPE_ID = 3; Calendar DateNow = Calendar.getInstance(); /* * Шифруем полученную строку в md5 */ private String DoMd5(String TextValue, String AgentSing){ return DigestUtils.md5Hex(TextValue+AgentSing+BisysPass).toUpperCase(); } /* * Соединяемся с БД */ protected synchronized boolean DoConnection(){ //Регистрируем драйвер для соединения с БД try{ File propsFile = new File(propFile); FileInputStream fis = new FileInputStream(propsFile); props.load(fis); fis.close(); String db_user = props.getProperty("db.user"); String password = props.getProperty("db.pswd"); String driver = props.getProperty("db.driver"); String properties_jdbc_url = props.getProperty("db.url"); DriverManager.registerDriver((Driver)Class.forName(driver).newInstance()); con = DriverManager.getConnection(properties_jdbc_url,db_user,password); return true; }catch(Exception e){ return false; } } protected synchronized void closeConnection(){ try{ con.close(); }catch(SQLException e){ } } |
Автор: | dm777 [ 16 июл 2013, 18:12 ] |
Заголовок сообщения: | Re: Не разблокируется доступ по приходу платежа |
Код: private boolean updateAccountBalance(String Acc, String Comm, BigDecimal paySumm){
ContractManager cm = new ContractManager(con); PaymentManager paymentManager = new PaymentManager( con ); BalanceUtils bu = new BalanceUtils( con ); Contract co = cm.getContractByTitle(Acc); if(co!=null){ if( paySumm != null && paySumm.compareTo( BigDecimal.ZERO ) != 0 ) { Payment payment = new Payment(); payment.setTypeId( PAYMENT_TYPE_ID ); payment.setContractId( co.getId() ); payment.setPaymentDate( java.util.Calendar.getInstance().getTime() ); payment.setSumma( paySumm ); payment.setComment( Comm ); payment.setUserId( User.USER_SERVER ); try{ paymentManager.updatePayment( payment ); //bu.updateBalance( java.util.Calendar.getInstance().getTime() , co ); bu.updateBalance( payment.getPaymentDate(), co ); con.commit(); EventProcessor.getInstance().publish( new PaymentEvent( 0 , payment ) ); EventProcessor.getInstance().publish( new ContractBalanceChangedEvent( co.getId(), payment.getSumma() ) ); } catch (Exception e){ return false; } return true; } else return false; } else return false; } |
Автор: | Amir [ 17 июл 2013, 19:21 ] |
Заголовок сообщения: | Re: Не разблокируется доступ по приходу платежа |
Мне кажется, у вас сейчас сюда попадает, но т.к. здесь нет логирования этого (т.е. что чуть выше произошла ошибка) не видно. Код: catch (Exception e){ Попробуйте поменять return false; } Код: con.commit(); на Код: if(!con.getAutoCommit()){
con.commit(); } |
Автор: | dm777 [ 18 июл 2013, 22:59 ] |
Заголовок сообщения: | Re: Не разблокируется доступ по приходу платежа |
Огромное спасибо ... Заработало ... |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |