Интегрированные сети ISDN

         

Структура BatchAdminReq



Таблица 4.6.2.81. Структура BatchAdminReq



BatchAdminReq Enc(M, P, BatchAdminReqData)
BatchAdminReqData {BatchAdminRRTags, [BatchID], [BrandAndBINSeq], [BatchOperation], ReturnBatchSummaryInd, [ReturnTransactionDetail], [BatchStatus], [TransDetails], [BARqExtensions]}
BatchAdminRRTags RRTags.

Новый идентификатор RRPID и Date (дата)

BatchID Идентификатор платежной линии для счета банка продавца
BrandAndBINSeq {BrandAndBIN +}
BatchOperation Числовая величина, указывающая на операцию, которая должна быть выполнена в рамках платежной линии
ReturnBatchSummaryInd Обозначает, что в BatchAdminRes должны быть возвращены итоговые данные.
ReturnTransactionDetail {StartingPoint, MaximumItems, ErrorsOnlyInd, [BrandID]}

Если специфицирован BrandID, присылаются данные только для позиций, определяемых платежной системой карты.

BatchStatus См. табл. 4.6.2.53.
TransDetails {NextStartingPoint, TransactionDetailSeq}
BARqExtensions Данные в расширении административного сообщения платежной линии должны иметь финансовый характер и быть важными для обработки административных запросов.
BrandAndBIN {BrandID, [BIN]}
StartingPoint Нуль указывает на то, что следует прислать данные для первой группы позиций, в противном случае NextStartingPoint предшествующего BatchAdminRes
MaximumItems Максимальное число позиций, которые следует прислать в этой группе.
ErrorsOnlyInd Булево число, индицирующее, следует ли присылать только позиции с состоянием ошибки.
BrandID Тип платежной системы (без указания типа продукта).
NextStartingPoint Нуль индицирует, что это последняя группа позиций, в противном случае, используется значение, идентифицирующее начальную точку следующей группы позиций.
TransactionDetailSeq {TransactionDetail +}
BIN Идентификационный номер банка для обработки транзакций продавца.
TransactionDetail См. табл. 4.6.2.54

Расчетный центр обрабатывает запрос BatchAdminReq следующим образом.

Шаг Действие
1 Выделить запрос из входного сообщения
2 Проверить подпись. Если проверка не прошла, присылается отклик Error c ErrorCode = signatureFailure.
3 Проверить, что RRPID в BatchAdminReq соответствует RRPID в цифровом конверте сообщения. Если проверка не прошла, присылается отклик Error c ErrorCode = unknownRRPID.
4 Если BatchOperation = open:

  • Проверить, что BatchID еще не открыт. Если это не так, установить BAStatus = batchAlreadyOpen.
  • Проверить, что BatchID доступен. Если это не так, установить BAStatus = batchIDUnavailable.
  • Если имеется BrandIDSeq:
      1. Проверить, что каждый BrandID поддерживается. Если это не так, установить BAStatus = brandNOTSupported.
      2. Проверить, что каждый BIN поддерживается. Если это не так, установить BAStatus = unknownBIN.
      3. Запомнить платежные системы и BIN, которые можно использовать для данной платежной линии.

    1. Открыть платежную линию для использования продавцом и установить BAStatus = success.
    2. Продолжить процесс посылкой BatchAdminRes

    Любые другие поля, присутствующие в сообщении BatchAdminReq будут игнорироваться, когда BatchOperation = open.

    5 Если BatchOperation = purge:

  • Проверить, что BatchID уже открыт. Если это не так, установить BAStatus = unknownbatchID.
  • Если BrandIDSeq присутствует:
      1. Проверить, что каждый BatchID относится к данной платежной линии. Если это не так, установить BAStatus = brandBatchMismatch.
      2. Проверить, что каждый BIN относится к данной платежной линии. Если это не так, установить BAStatus = unknownBIN.
      3. Удалить все транзакции платежной линии, ассоциированные со специфицированной платежной системой и BIN.

    1. В противном случае, удалить все транзакции из группы платежей
    2. Установить BAStatus = success
    3. Продолжить работу посылкой сообщения BatchAdminRes

    Любые другие поля, присутствующие в сообщении BatchAdminReq, будут игнорироваться, когда BatchOperation = purge.

    6 Если BatchOperation = close:

  • Проверить, что BatchID уже открыт. Если это не так, установить BAStatus = unknownbatchID.
  • Установить BAStatus = success
  • Продолжить работу посылкой сообщения BatchAdminRes
  • Любые другие поля, присутствующие в сообщении BatchAdminReq будут игнорироваться, когда BatchOperation = close.

    7 Если BatchOperation опущено, а возвращенное значение ReturnBatchSummaryInd = TRUE:

  • Проверить, что BatchID доступен. Если это не так, установить BAStatus = batchIDUnavailable.
  • Если BrandAndBIN включен:
  • Проверить, что каждый BatchID относится к данной платежной линии. Если это не так, установить BAStatus = brandBatchMismatch.
  • Проверить, что каждый BIN относится к данной платежной линии. Если это не так, установить BAStatus = unknownBIN.
  • Вычислить BatchTotals и заполнить структуры данных BrandBatchDetails для каждого специфицированного значения BrandAndBIN.
  • Вычислить BatchTotals для платежных систем, включенных в BrandAndBIN, или для всех транзакций, если BrandAndBIN отсутствует. Заполнить BatchTotals в структурах данных BatchStatus вычисленными значениями.
  • Если TransmissionStatus и SettlementInfo доступны в клиринговой системе, используемой расчетным центром, занести эту информацию в BatchAdminRes.
  • Если StartingPoint опущено, установить BAStatus = success и продолжить работу посылкой отклика BatchAdminRes, в противном случае перейти к следующему шагу.
  • NextStartingPoint и TransactionDetailSeq игнорируются, если ReturnBatchSummaryInd = TRUE.

    8 Если включено поле StartingPoint:

  • Если MaximumItem установлен равным 0, аннулировать любую предшествующую информацию для данной платежной линии и установить BAStatus = success и продолжить работу посылкой отклика BatchAdminRes.
  • Проверить, что BatchID доступен. Если это не так, установить BAStatus = batchIDUnavailable.
  • Если StartingPoint не равен нулю, проверить, что StartingPoint равен NextStartingPoint, присланном в предыдущем отклике BatchAdminRes.
  • Если StartingPoint равен нулю, установить указатель на начало списка платежей, в противном случае установить указатель согласно содержимому StartingPoint.
  • Если имеется BrandAndBIN:
      1. Проверить, что каждый BatchID имеет отношение к данной платежной линии. Если это не так, установить BAStatus = brandBatchMismatch.
      2. Проверить, что каждый BIN имеет отношение к данной платежной линии. Если это не так, установить BAStatus = unknownBIN.
      3. Если специфицировано поле MaximumItems, заполнить TransactionDetail вплоть до MaximumItems из текущей позиции и установить NextStartingPoint в позицию, из которой можно получить данные для последующих транзакций. Если система достигла конца списка платежей, установить NextStartingPoint = 0. Выбор позиции ограничивается BrandandBIN и ErrorOnlyInd.

      f) Установить BAStatus = success и продолжить работу посылкой отклика BatchAdminRes

    9 Если код BatchOperation опущен, а BatchStatus имеется:

  • Проверить, что BatchID доступен. Если это не так, установить BAStatus = batchIDUnavailable.
  • Если имеется поле BrandBatchDetails:
      1. Проверить, что каждый BatchID имеет отношение к данной платежной линии. Если это не так, установить BAStatus = brandBatchMismatch.
      2. Проверить, что каждый BIN имеет отношение к данной платежной линии. Если это не так, установить BAStatus = unknownBIN.
      3. Вычислить BatchTotals и заполнить информационные структуры BrandBatchDetails для каждого специфицированного BrandAndBIN.

    1. Вычислить BatchTotals для платежных систем, включенных в BrandAndBIN или для всех транзакций, если BrandAndBIN отсутствует.
    2. Для любого значения BatchTotals, которое не согласуется с приведенным в сообщении BatchAdminReq, занести вычисленные значения в BatchTotals информационной структуры BatchStatus.
    3. Если какое-либо итоговое значение не согласовано, установить BAStatus = totalsOutOfBalance и перейти к следующему пункту.
    4. Если поле TransactionDetails опущено, установить BAStatus = success и продолжить работу посылкой отклика BatchAdminRes

    10 Если код BatchOperation опущен и включено поле TransactionDetails:

  • Проверить, что BatchID доступен. Если это не так, установить BAStatus = batchIDUnavailable.
  • Если указатель StartingPoint не равен нулю и не согласуется с NextStartingPoint из предыдущего BatchAdminReq, установить BAStatus = unknownStartingPoint.
  • Если NextStartingPoint не равен нулю, запомнить TransactionDetails, скопировать NextStartingPoint в сообщение BatchAdminRes и установить BAStatus = success. Продолжить работу посылкой отклика BatchAdminRes.
  • Проверяется соответствие полученных транзакций с теми, что хранятся в расчетном центре. Если отличие обнаружено, установить BAStatus = totalsOutOfBalance. Продолжить работу посылкой отклика BatchAdminRes.
  • Опционно установить BAStatus = stopItemDetail, чтобы проинформировать продавца о том, что расчетный центр не желает обрабатывать позиции в данной последовательности платежей (batch). Продолжить работу посылкой отклика BatchAdminRes.
  • Установить BAStatus = success и продолжить работу посылкой отклика BatchAdminRes.
  • Последовательность BrandAndBIN игнорируется.

    <
    Формирование отклика BatchAdminRes осуществляется согласно следующему алгоритму.

    Шаг Действие
    1 Если BAStatus не установлен равным success (успех) или MaximumItems в BatchAdminReq установлен равным 0, аннулировать любую информацию в рамках платежной линии для заданной последовательности запросов BatchAdmin, посланных ранее продавцом.
    2 Используя сертификат расчетного центра, запустить операцию подписи для BatchAdminResData.
    3 Зашифровать BatchAdminResTBE, используя сертификат шифрования, поставляемый продавцом, и установить код типа содержимого равным id-set-content-BatchAdminResTBE.
    4 Вложить сообщение в цифровой конверт и послать владельцу карты.

    Структура отклика BatchAdminRes представлена в таблице 4.6.2.82.

    Содержание раздела