...
В самом начале работы с БД необходимо инициализировать сессию с помощью специального вызова процедуры MAIN.INIT
:
Code Block |
---|
BEGIN
MAIN.INIT(
vch_VC_IP => :vch_VC_IP,
vch_VC_USER => :vch_VC_USER,
vch_VC_PASS => :vch_VC_PASS,
vch_VC_APP_CODE => :vch_VC_APP_CODE,
vch_VC_CLN_APPID => :vch_VC_CLN_APPID);
END;
|
...
Проверка наличия лицевого счета
Code Block |
---|
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 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 — Сумма рекомендуемого платежа (выходной аргумент)
Идентификационные данные абонента:
...
Проведение платежа
Code Block |
---|
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
содержится информация с указанием причины:
Code Block |
---|
SELECT D_MESSAGE,
VC_MESSAGE
FROM TT_V_MESSAGE_LOGS
ORDER BY D_MESSAGE
|