...
В самом начале работы с БД необходимо инициализировать сессию с помощью специального вызова процедуры MAIN.INIT
SS_AUTHENTICATION_PKG.LOGIN
:
Code Block | ||
---|---|---|
| ||
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_USER
—LOGIN
— имя пользователя (VARCHAR2)vch_VC_PASSPASSWORD
— пароль (VARCHAR2)vch_VC_APP_CODE
— код приложения (VARCHAR2 —NETSERV_HPD
)vch_VC_CLN_APPID
— название платежного приложения, для логирования (VARCHAR2)
Проверка наличия лицевого счета
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; |
...
Если в результате вызова процедуры 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 |
...