Установка unload status счета через HTTP-запрос
Материал из BiTel WiKi
Строка 4: | Строка 4: | ||
В рабочей директории, например ~/playground делаем файлик ./bitel/billing/server/bill/action/ActionSetUnloadStatus.java : | В рабочей директории, например ~/playground делаем файлик ./bitel/billing/server/bill/action/ActionSetUnloadStatus.java : | ||
- | < | + | <source lang=java>package bitel.billing.server.bill.action; |
import java.sql.*; | import java.sql.*; | ||
Строка 28: | Строка 28: | ||
ps.executeUpdate(); | ps.executeUpdate(); | ||
} | } | ||
- | }</ | + | }</source> |
Компилируем: | Компилируем: | ||
Строка 40: | Строка 40: | ||
Перезапускаем BGBillingServer и можем обращаться по URL вида: | Перезапускаем BGBillingServer и можем обращаться по URL вида: | ||
- | < | + | <source>http://192.168.1.201:8080/bgbilling/executer?user=<username>&pswd=<pswd>module=bill&action=SetUnloadStatus&mid=<mid>&id=<billID>&status=<status></source> |
Для параноиков можно задать наш action в /usr/local/BGBillingServer/actions/bill.xml и ограничить права для пользователей. | Для параноиков можно задать наш action в /usr/local/BGBillingServer/actions/bill.xml и ограничить права для пользователей. | ||
Только при задании id action-а в xml нужно позаботиться об уникальности и указать его равным, скажем 1001. | Только при задании id action-а в xml нужно позаботиться об уникальности и указать его равным, скажем 1001. |
Версия 03:46, 26 мая 2010
В таблице счетов bill_data_{mid} есть поле unload_status - признак выгруженности счета во внешнюю систему. Но стандартного API для работы с ним нет, приходится изменять его напрямую в базе. Но не всегда разумно давать прямой доступ к базе внешней системе.
Решением является создание своего Action (см например Свой_action_в_личном_кабинете):
В рабочей директории, например ~/playground делаем файлик ./bitel/billing/server/bill/action/ActionSetUnloadStatus.java :
package bitel.billing.server.bill.action; import java.sql.*; public class ActionSetUnloadStatus extends ActionBase { public void doAction() throws SQLException { int id = getIntParameter("id", -1); int status = getIntParameter("status", 0); if ((this.mid <= 0) || (id <= 0)) { setParamsError(); return; } query = "UPDATE bill_data_"+this.mid+" SET unload_status = ? WHERE id = ?"; PreparedStatement ps = this.con.prepareStatement(query); ps.setInt(1, status); ps.setInt(2, id); ps.executeUpdate(); } }
Компилируем: javac -cp ./:/usr/local/BGBillingServer/lib/* bitel/billing/server/bill/action/ActionSetUnloadStatus.java
Запаковываем: jar cf bill-my.jar ./
Закидываем в lib биллинга: cp bill-my.jar /usr/local/BGBillingServer/lib/
Перезапускаем BGBillingServer и можем обращаться по URL вида:
Указан неподдерживаемый язык.
Вы должны указать язык следующим образом: <source lang="html">...</source>
Поддерживаемые языки:
abap, actionscript, ada, apache, applescript, asm, asp, autoit, bash, basic4gl, blitzbasic, bnf, c, c_mac, caddcl, cadlisp, cfdg, cfm, cpp, cpp-qt, csharp, css, d, delphi, diff, div, dos, dot, eiffel, fortran, freebasic, genero, gml, groovy, haskell, html4strict, idl, ini, inno, io, java, java5, javascript, latex, lisp, lua, m68k, matlab, mirc, mpasm, mysql, nsis, objc, ocaml, ocaml-brief, oobas, oracle8, pascal, per, perl, php, php-brief, plsql, python, qbasic, rails, reg, robots, ruby, sas, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, vb, vbnet, vhdl, visualfoxpro, winbatch, xml, xpp, z80
Для параноиков можно задать наш action в /usr/local/BGBillingServer/actions/bill.xml и ограничить права для пользователей. Только при задании id action-а в xml нужно позаботиться об уникальности и указать его равным, скажем 1001.