Документация BILLmanager

Услуга самопроизвольно останавливается

Проблема

Такая проблема может возникнуть, если:

  • клиент исчерпал лимит, указанный в настройках дополнения;
  • не хватает денежных средств для проведения оплаты.

Решение

Клиент исчерпал лимит, указанный в настройках

  1. Проверьте в настройках тарифного плана или в настройках услуги какое значение указано в лимите.
  2. Проверьте по истории услуги когда и кем она была выключена. Например, если в истории услуги остановка вызвана pmispmgr5 service.postsuspend, то можно посмотреть лог /usr/local/mgr5/var/pmispmgr5.log в момент остановки и узнать причину.
    Момент остановки услуги из-за превышения лимита по дополнению в логе /usr/local/mgr5/var/billmaintain.log будет иметь вид:

    Остановка услуги в логе
    Mar 3 00:24:36 [9686:1] rpc EXTINFO Query('func=service.statdaily&item=323911&statdate=2020%2D03%2D02')
    Mar 3 00:24:36 [9686:1] libmgr ERROR Error: Type: 'stat_addon_over_limit' Object: '' Value: ''
    Mar 3 00:24:37 [9686:1] sbin_utils INFO QUERY: func=service.autosuspend&item=323911&stat=on
    Обратите внимание!
    При превышении лимита клиенту должно прийти уведомление об этом.

Отсутствуют денежные средства для оплаты

  1. Проверьте баланс, время последнего пополнения, уведомления.
  2. Проверьте лог billmaintain.log на наличие ошибок.

    Пример запроса с ошибкой
    May  5 00:19:17 [8821:1] rpc EXTINFO Query('func=service.billdaily&item=310598&from=daily')
    May  5 00:19:17 [8821:1] rpc DEBUG mgrclient.cpp:215 Result xml: <?xml version="1.0" encoding="UTF-8"?>
    <doc><error type="not_enough_money" lang="en" code="1"><param name="amount">0.1048</param><param name="have">0.00</param><param name="currency">EUR</param><param name="deficit">0.1048</param><param name="limit">0.00</param><param name="reserved">0.00</param><param name="available">0.00</param><stack><action level="30" user="root">service.billdaily</action></stack><group>insufficient funds to complete the operation. Required amount  __amount__ __currency__. Your current balance: __have__ __currency__, credit limit __limit__ </group><msg>insufficient funds to complete the operation. Required amount  0.1048 EUR. Your current balance: 0.00 EUR, credit limit 0.00 </msg></error></doc>
    
    May  5 00:19:17 [8821:1] backtrace EXTINFO mgr_client::Result::Result(mgr_xml::Xml const&, bool, bool) (lib/libmgr.so.5.246.2 + 0x370) [*0x7f451f67d8e6]
    May  5 00:19:17 [8821:1] backtrace EXTINFO mgr_client::Local::DoQuery(std::string const&) (lib/libmgr.so.5.246.2 + 0x5d6) [*0x7f451f678c9b]
    May  5 00:19:17 [8821:1] backtrace EXTINFO mgr_client::Client::Query(std::string const&) (lib/libmgr.so.5.246.2 + 0x42b) [*0x7f451f9fa36a]
    May  5 00:19:17 [8821:1] backtrace EXTINFO sbin::ClientQuery(std::string const&) (libexec/billmaintain.so + 0x4a) [*0x7f451f9fa75f]
    May  5 00:19:17 [8821:1] backtrace EXTINFO sbin::ClientQuerySafe(std::string const&) (libexec/billmaintain.so + 0x5f) [*0x7f451f9b04bf]
    May  5 00:19:17 [8821:1] backtrace EXTINFO BillItem(int, bool, std::string const&) (libexec/billmaintain.so + 0x10f) [*0x7f451f9d280b]
    May  5 00:19:17 [8821:1] backtrace EXTINFO BillDaily() (libexec/billmaintain.so + 0xadb) [*0x7f451f9d5b90]
    May  5 00:19:17 [8821:1] backtrace EXTINFO ??? (libexec/billmaintain.so + 0x2090) [*0x401359]
    May  5 00:19:17 [8821:1] backtrace EXTINFO ??? (/usr/local/mgr5/sbin/billmaintain + 0x0) [*0x7f451fc56555]
    May  5 00:19:17 [8821:1] backtrace EXTINFO ??? (/lib64/libc.so.6 + 0xf5) [*0x4015f7]
    May  5 00:19:17 [8821:1] backtrace EXTINFO ??? (/usr/local/mgr5/sbin/billmaintain + 0x0) [*(nil)]
    May  5 00:19:17 [8821:1] libmgr ERROR Error: Type: 'not_enough_money' Object: '' Value: ''