Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

В самом начале работы с БД необходимо инициализировать сессию с помощью процедуры MAIN.INITспециального вызова процедуры SS_AUTHENTICATION_PKG.LOGIN:

Code Block
languagesql
BEGIN
  MAIN.INITSS_AUTHENTICATION_PKG.LOGIN(
    vch_VC_IP        => :vch_VC_IP,
    vch_VC_USERLOGIN      => :vch_VC_USERLOGIN,
    vch_VC_PASSPASSWORD      => :vch_VC_PASSPASSWORD,
    vch_VC_APP_CODE  => :vch_VC_APP_CODE,
    vch_VC_CLN_APPID => :vch_VC_CLN_APPID);

END;
  • vch_VC_IP — IP-адрес платежного сервера, для логирования (VARCHAR2)
  • vch_VC_USERLOGIN — имя пользователя (VARCHAR2)
  • vch_VC_PASSPASSWORD — пароль (VARCHAR2)
  • vch_VC_APP_CODE — код приложения (VARCHAR2 — NETSERV_HPD)
  • vch_VC_CLN_APPID — название платежного приложения, для логирования (VARCHAR2)

Проверка наличия лицевого счета

Code Block
languagesql
DECLARE
  num_N_ACCOUNT_ID                    SI_V_SUBJ_ACCOUNTS.N_ACCOUNT_ID%TYPE;
  vch_Info                            VARCHAR(2000);
BEGIN
  num_N_ACCOUNT_ID := EX_PAYMENTS_PKG_S.GET_ACCOUNT_ID_FOR_CHARGE(
                        vch_VC_ACCOUNT           => :vch_VC_ACCOUNT,
                        vch_VC_USER_CODE         => :vch_VC_USER_CODE,
                        vch_VC_TEL_NUMBER        => :vch_VC_TEL_NUMBER,
                        vch_VC_CONTRACT_DOC_NO   => :vch_VC_CONTRACT_DOC_NO,
                        vch_VC_BILL_DOC_NO       => :vch_VC_BILL_DOC_NO,
                        b_AllowCompanyPaying     => :b_AllowCompanyPaying,
                        vch_VC_USER_GROUP        => :vch_VC_USER_GROUP,
                        vch_Info                 => :vch_Info);
END;  _Идентификационные данные абонента_: * {{vch_VC_ACCOUNT}} --- Номер лицевого счета (VARCHAR2) * {{vch_VC_USER_CODE}} --- Код абонента (VARCHAR2)
* {{vch_VC_TEL_NUMBER}} --- Номер телефона (VARCHAR2)
* {{vch_VC_CONTRACT_DOC_NO}} --- Номер договора (VARCHAR2)
* {{vch_VC_BILL_DOC_NO}} --- Номер счета (VARCHAR2)

* {{b_AllowCompanyPaying}} --- Флаг разрешения приема платежей от юрлиц ({{MAIN.b_TRUE}} или {{MAIN.b_FALSE}})
* {{            b_Allow_Disabled         => :b_Allow_Disabled,
                        b_EvalRecommendedPayment => :b_EvalRecommendedPayment,
                        num_RecommendedPayment   => :num_RecommendedPayment);
END;
  • b_AllowCompanyPaying — Флаг разрешения приема платежей от юрлиц (MAIN.b_TRUE или MAIN.b_FALSE)

  • vch_VC_USER_GROUP

...

  • — Код группы абонентов (VARCHAR2).

...

  • Может

...

  • быть

...

  • не

...

  • задан,

...

  • если

...

  • ограничение

...

  • не

...

  • требуется

...

  • vch_Info

...

  • — Информация по абоненту (выходной

...

  • аргумент)

  • b_Allow_Disabled — Флаг для поиска по отключенным абонентам (MAIN.b_TRUE или MAIN.b_FALSE)

  • b_EvalRecommendedPayment — Флаг для расчета рекомендуемого платежа (MAIN.b_TRUE или MAIN.b_FALSE)
  • num_RecommendedPayment — Сумма рекомендуемого платежа (выходной аргумент)

Идентификационные данные абонента:

  • vch_VC_ACCOUNT — Номер лицевого счета (VARCHAR2)
  • vch_VC_USER_CODE — Код абонента (VARCHAR2)
  • vch_VC_TEL_NUMBER — Номер телефона (VARCHAR2)
  • vch_VC_CONTRACT_DOC_NO — Номер договора (VARCHAR2)
  • vch_VC_BILL_DOC_NO — Номер счета (VARCHAR2)

В вызове разрешается указание только одного из возможных аргументов, идентифицирующих абонента (например, vch_VC_CONTRACT_DOC_NO

...

— номер договора),

...

при

...

этом

...

все

...

остальные

...

идентифицирующие

...

аргументы

...

должны

...

быть

...

либо

...

удалены

...

из

...

вызова,

...

либо

...

равны

...

NULL

...

.

...

В

...

результате

...

вызова

...

функция

...

EX_PAYMENTS_PKG_S.GET_ACCOUNT_ID_FOR_CHARGE

...

возвращает

...

идентификатор

...

лицевого

...

счета

...

(

...

num_N_ACCOUNT_ID

...

)

...

и

...

информацию

...

по

...

абоненту

...

(

...

vch_Info

...

— первые буквы фамилии,

...

имени

...

и

...

отчества

...

для

...

физлиц.

...

Например,

...

Ф.

...

П.

...

П.

...

)

...

Если

...

в

...

результате

...

вызова

...

не

...

удалось

...

подобрать

...

ЛС

...

абонента,

...

функция

...

возвращает

...

NULL

...

.

Проведение платежа

Code Block
languagesql
BEGIN
  -- Очистка логов
  TT_MESSAGE_LOGS_PKG.TT_MESSAGE_LOGS_CLEAR;
  
  -- Проведение платежа
  EX_PAYMENTS_PKG.EX_PAYMENTS_CHARGE(
    vch_VC_TO_BANK          => :vch_VC_TO_BANK,
    vch_VC_TO_ACCOUNT       => :vch_VC_TO_ACCOUNT,
    num_N_SUM               => :num_N_SUM,
    num_Fee                 => :num_Fee,
    vch_PayType             => :vch_PayType,
    vch_Currency            => :vch_Currency,
    vch_VC_TRANSACTION_ID   => :vch_VC_TRANSACTION_ID,
    vch_VC_TRANSACTION_NO   => :vch_VC_TRANSACTION_NO,
    num_N_FORWHO_ACCOUNT_ID => :num_N_FORWHO_ACCOUNT_ID,
    b_AllowCompanyPaying    => :b_AllowCompanyPaying,
    dt_D_TAKING             => :dt_D_TAKING,
    num_N_DOC_ID            => :num_N_DOC_ID,
    dt_D_LOAD               => :dt_D_LOAD);
END;

{{
  • vch_VC_TO_BANK

...

  • — код банка платежной системы (VARCHAR2)

...

  • vch_VC_TO_ACCOUNT

...

  • — номер счета юрлица оператора в банке ПС (VARCHAR2)
  • num_N_SUM

...

  • — сумма платежа к зачислению (NUMBER)

...

  • num_Fee

...

  • — размер комиссии ПС в процентах (NUMBER)

...

  • vch_PayType

...

  • — тип платежа (VARCHAR2)

...

  • vch_Currency

...

  • — код валюты (VARCHAR2,

...

  • значение

...

  • RUB

...

  • )
  • vch_VC_TRANSACTION_ID

...

  • — идентификатор транзакции (VARCHAR2)

...

  • vch_VC_TRANSACTION_NO

...

  • — номер транзакции (VARCHAR2).

...

  • Может

...

  • быть

...

  • не

...

  • задан

...

  • num_N_FORWHO_ACCOUNT_ID

...

  • — идентификатор ЛС абонента (NUMBER).

...

  • См.

...

  • проверку

...

  • наличия

...

  • лицевого

...

  • счета
  • b_

...

  • AllowCompanyPaying — Флаг разрешения приема платежей от юрлиц (MAIN.b_TRUE или MAIN.b_FALSE)
  • dt_D_TAKING

...

  • — дата получения платежа от абонента (DATE,

...

  • значение

...

  • по

...

  • умолчанию

...

  • SYSDATE — текущее время)
  • num_N_DOC_ID

...

  • — идентификатор платежа в биллинге (NUMBER,

...

  • выходной

...

  • аргумент)

...

  • dt_D_LOAD

...

  • — дата загрузки платежа в биллинг (DATE,

...

  • выходной

...

  • аргумент)

...

Если

...

в

...

результате

...

вызова

...

процедуры

...

EX_PAYMENTS_PKG.EX_PAYMENTS_CHARGE

...

идентификатор

...

платежа

...

(

...

num_N_DOC_ID

...

)

...

оказался

...

NULL

...

(платеж

...

не

...

прошел),

...

в

...

представлении

...

TT_V_MESSAGE_LOGS

...

содержится

...

информация

...

с

...

указанием

...

причины:

...

SELECT

Code Block
languagesql
SELECT D_MESSAGE,

...


       VC_MESSAGE

...


FROM   TT_V_MESSAGE_LOGS

...


ORDER BY D_MESSAGE
Code Block