...
В самом начале работы с БД необходимо инициализировать сессию с помощью процедуры 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); 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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
SELECT D_MESSAGE, |
...
VC_MESSAGE |
...
FROM TT_V_MESSAGE_LOGS |
...
ORDER BY D_MESSAGE |
Code Block |
---|