...
В самом начале работы с БД необходимо инициализировать сессию с помощью специального вызова процедуры 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;
|
...
Проведение платежа
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
|
...