Установка unload status счета через HTTP-запрос

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: « В таблице счетов bill_data_{mid} есть поле unload_status - признак выгруженности счета во внешнюю систе…»)
Строка 40: Строка 40:
Перезапускаем BGBillingServer и можем обращаться по URL вида:
Перезапускаем BGBillingServer и можем обращаться по URL вида:
-
http://192.168.1.201:8080/bgbilling/executer?user=<username>&pswd=<pswd>module=bill&action=SetUnloadStatus&mid=<mid>&id=<billID>&status=<status>
+
<code>http://192.168.1.201:8080/bgbilling/executer?user=<username>&pswd=<pswd>module=bill&action=SetUnloadStatus&mid=<mid>&id=<billID>&status=<status></code>
Для параноиков можно задать наш action в /usr/local/BGBillingServer/actions/bill.xml и ограничить права для пользователей.
Для параноиков можно задать наш action в /usr/local/BGBillingServer/actions/bill.xml и ограничить права для пользователей.
Только при задании id action-а в xml нужно позаботиться об уникальности и указать его равным, скажем 1001.
Только при задании id action-а в xml нужно позаботиться об уникальности и указать его равным, скажем 1001.

Версия 03:32, 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 вида: http://192.168.1.201:8080/bgbilling/executer?user=<username>&pswd=<pswd>module=bill&action=SetUnloadStatus&mid=<mid>&id=<billID>&status=<status>

Для параноиков можно задать наш action в /usr/local/BGBillingServer/actions/bill.xml и ограничить права для пользователей. Только при задании id action-а в xml нужно позаботиться об уникальности и указать его равным, скажем 1001.

Личные инструменты