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

         

Форматы специальных сообщений



4. Форматы специальных сообщений

Далее описывается формат сообщений CyberCash версии 0.8. Предполагается, что читатель знаком с такими терминами как "получатель" (acquirer), "PAN" (первичный номер счета), и т.д., определенными в документе ISO 8583, и назначение валюты (currency designations), как это определено в ISO 4217. Некоторые несущественные поля для упрощения удалены. В последующих примерах сообщений подписи, хэши и шифрованные секции не имеют никакого реального смысла.

4.1. Регистрация персоны и нахождение приложения

Первым шагом, который должен сделать клиент, чтобы использовать CyberCash, является регистрация персоны с помощью своего приложения. Это делается с помощью сообщения R1, описанного ниже. Сервер CyberCash откликается сообщением R2.

Когда приложение покупателя узнает, что оно устарело, оно может воспользоваться запросом GA1, посылаемым серверу, и получить в отклике GA2 подписанную версию самого себя.

4.1.1. R1 – регистрация

Описание: Это исходное сообщение, посылаемое для формирования новой персоны CyberCash.

#########################################################

Отправитель: CyberApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

transaction: 123123213

date: 19950121100505.nnn

cyberkey: CC1001



opaque:

FrYOQrD16lEfrvkrqGWkajM1IZOsLbcouB43A4HzIpV3/EBQM5WzkRJGzYPM1r3noBUc

MJ4zvpG0xlroY1de6DccwO9j/0aAZgDi9bcQWV4PFLjsN604j3qxWdYn9evIGQGbqGjF

vn1qI1Ckrz/4/eT1oRkBBILbrWsuwTltFd84plvTy+bo5WE3WnhVKsCUJAlkKpXMaX73

JRPoOEVQ3YEmhmD8itutafqvC90atX7ErkfUGDNqcB9iViRQ7HSvGDnKwaihRyfirkgN

+lhOg6xSEw2AmYlNiFL5d/Us9eNG8cZM5peTow==

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ: Сгенерирован с использованием общедоступного ключа CyberCash, идентифицированного в CyberKey.

#####################################################################

Содержимое скрытой секции:



type: registration

swversion: 0.8win

content-language: en-us

requested-id: MyRequestedCCID

email: myemail@myemailhost.com

pubkey:

0VdP1eAUZRrqt3Rlg460Go/TTs4gZYZ+mvI7OlS3l08BVeoms8nELqL1RG1pVYdDrTsX

E5L+wcGCLEo5+XU5zTKkdRUnGRW4ratrqtcte7e94F+4gkCN06GlzM/Hux94

signature:

v6JGmxIwRiB6iXUK7XAIiHZRQsZwkbLV0L0OpVEvan9l59hVJ3nia/cZc/r5arkLIYEU

dw6Uj/R4Z7ZdqO/fZZHldpd9+XPaqNHw/y8Arih6VbwrO5pKerLQfuuPbIom

#####################################################################

подпись покрывает следующие поля: transaction, date, cyberkey, type, swversion, content-language, requested-id, email, pubkey

#####################################################################

Объяснение:

content-language (язык содержимого) берется из поля заголовка MIME (смотри RFC-1766) и соответствует языку, на котором должно быть написано сообщение (в настоящее время допустимо пока только en-us). swversion используется для проверки, не является ли приложение клиента устаревшим.



4.1.2 R2 – отклик регистрации



Это сообщение предоставляет отклик об успехе или неудаче R1.

#####################################################################

Отправитель: CyberServer

Получатель: CyberApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

transaction: 12312313

date: 19950121100505.nnn

opaque:

r1XfjSQt+KJYUVOGU60r7voFrm55A8fP5DjJZuPzWdPQjGBIu3B6Geya8AlJfHsW11u8

dIv1yQeeYj/+l9TD1dXW21/1cUDFFK++J2gUMVv8mX1Z6Mi4OU8AfsgoCliwSkWmjSOb

kE62sAlZTnw998cKzMFp70TSlI3PEBtvIfpLq5lDCNbWidX8vFZV0ENUmMQ9DTP3du9w

fsFGvz1mvtHLT/Gj8GNQRYKF4xiyx4HYzTkSMhgU5B/QDLPS/SawIJuR86b9X0mwsr0a

gbGTzECPJTiKkrhxxMG/eymptsVQSLqNaTCx6w==

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ. Тот же самый, что и ключ сессии для R1 в случае той же транзакции и того же соединения (ID может отсутствовать).

#####################################################################

Содержимое скрытой секции:



type: registration-response

server-date: 19950121100506.nnn

requested-id: MyRequestedCCID

response-id: CyberCashHandle

>email: myemail@myemailhost.com

response-code: success/failure/etc.

pubkey:

0VdP1eAUZRrqt3Rlg460Go/TTs4gZYZ+mvI7OlS3l08BVeoms8nELqL1RG1pVYdDrTsX

E5L+wcGCLEo5+XU5zTKkdRUnGRW4ratrqtcte7e94F+4gkCN06GlzM/Hux94

swseverity: fatal/warning [отсутствует, если все в порядке]

swmessage; Говорит CyberApp, что оно является устаревшим. Этот текст отображается для пользователя [присутствует только, если имеется SWSeverity].

message;

Произвольный текст уведомления об успехе или неудаче.

Этот текст должен быть отображен для владельца приложения CyberCash...

В принципе текст включает в себя: duplicate-id (дублированный ID), bad-signature (ошибочная подпись) или ill-formed-registration (некорректная регистрация).

Объяснение:



responseid
применяется для предоставления уникального ID, если в результате ошибки потерян ID, использованный ранее. Если причина неудачи не связана с дублированным ID, это поле может быть опущено.
responseid предоставляет действительный ID с присоединенными контрольными символами в случае успеха.
swseverity может предупредить пользователя о том, что приложение устарело или о наличии в нем известных ошибок.
4.1.3. GA1 - get-application (получение приложения)



Используется CyberApp, чтобы получить обновленную версию.

#####################################################################

Отправитель: CyberApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

transaction: 123123213

date: 19950121100505.nnn

cyberkey: CC1001

opaque:

VHMS611wGkUmR6bKoI+ODoSbl7L5PKtEo6aM88LCidqN+H/8B4xM3LxdwUiLn7rMPkZi

xOGb+5d1lRV7WeTp21QYlqJr8emc6FAnGd5c0csPmcnEpTFh9xZDJaStarxxmSEwm2mw

l2VjEUODH6321vjoMAOFQWn7ER0o

$$-CyberCash-End-0QXqLlNxrn4GNQPPk9AO1Q==-$$

#####################################################################

Скрытый ключ. Генерируется с использованием общедоступного ключа CyberCash, идентифицированного в CyberKey.



#####################################################################

Содержимое скрытой секции:

type: get-application

swversion: 0.8win

Объяснение:

Может не существовать персоны покупателя и поэтому ID может отсутствовать. Может не быть пары ключей покупателя (общедоступный/секретный) и поэтому не быть подписи. swversion является обязательным, так что сервер мог сказать, что следует возвратить.



4.1.4. GA2 – отклик получения приложения (get-application-response)



Возвращает в случае успеха URL копии современного приложения CyberApp или флаг неудачи.

#####################################################################

Отправитель: CyberServer

Получатель: CyberApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

transaction: 12312313

date: 19950110102333.nnn

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

$$-CyberCash-End-0QXqLlNxrn4GNQPPk9AO1Q==-$$

#####################################################################

Скрытый ключ: ключ сессии от GA1

#####################################################################

Содержимое скрытой секции:

type: get-application-response

server-date: 19950110102334.nnn

response-code: success/failure/etc.

message; Текст сообщения отображается пользователю, предоставляя дополнительную информацию об успехе или неудаче.

swversion: 0.8win

application-url: http://foo.cybercash.com/server/0.8WIN.EXE

>application-hash: lSLzs/vFQ0BXfU98LZNWhQ==

В качестве хэша приложения используется MD5.

application-url и application-hash при ошибке опускаются.

swversion является версией, подлежащей передаче покупателю.



4.2. Привязка кредитных карт (Binding Credit Cards)



Система CyberCash сконструирована так, чтобы предоставить организации, выпустившей кредитную карту, возможность определить, может ли она использоваться через CyberCash.


Покупатель, после регистрации персоны в CyberCash, как это описано выше, может связать каждую кредитную карту по своему желанию с персоной в системе CyberCash. Это делается с помощью сообщения BC1, посылаемого покупателем своему серверу CyberCash, и отклика BC4, приходящего от сервера.



4.2.1. BC1 – подключение кредитной карты (Bind-Credit-card)



Это начальное сообщение в процессе установления соответствия между кредитной картой и персоной CyberCash.

#####################################################################

Отправитель: CyberApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

id: MyCyberCashID

date: 19950121100505.nnn

transaction: 12312314

cyberkey: CC1001

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ. Формируется из ключа шифрования CyberCash идентифицированного в CyberKey

#####################################################################

Содержимое скрытой секции:

type: bind-credit-card

swversion: 0.8win

card-number: 1234567887654321

card-type: mastercard

card-salt: 46735210

card-expiration-date: 05/99

card-name: John Q. Public

card-street:

card-city:

card-state:

card-postal-code:

card-country:

signature:

tX3odBF2xPHqvhN4KVQZZBIXDveNi0eWA7717DNfcyqh2TpXqgCxlDjcKqdJXgsNLkY7

GkyuDyTF/m3SZif64giCLjJRKg0I6mqI1k/Dcm58D9hKCUttz4rFWRqhlFaj

#####################################################################

Подпись покрывает следующие поля: id, date, transaction, cyberkey, type, swversion, card-number, card-salt, card-expiration-date, card-name, card-street, card-city, card-state, card-postal-code, card-country



#####################################################################

Объяснение:

salt необходимо из- за того, что хэш, запомненный сервером, является менее информативным. Сервер лишь запоминает префикс номера кредитной карты и хэш комбинации номера кредитной карты и salt. Если бы он хэшировал лишь номер кредитной карты, появилась бы возможность выяснить номер кредитной карты путем простого перебора всех возможных номеров. Запись номеров кредитных карт в файлы сервера могут сделать систему весьма уязвимой.



4.2.2. BC4 – отклик подключения кредитной карты (bind-credit-card-response)



Отмечает, что процесс подключения кредитной карты завершился. Присылает флаг успеха или неудачи.

#####################################################################

Получатель: CyberApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

id: mycybercashid

transaction: 12312314

date: 19950121100505.nnn

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ. Ключ сессии от BC1 и ID

#####################################################################

Содержимое скрытой секции:

type: bind-credit-card-response

server-date: 19950121100506.nnn

swseverity: fatal/warning [absent if ok]

swmessage; message about obsoleteness of customer software to be shown to the customer. [only resent if SWSeverity present]

response-code: success/failure/etc.

card-number: 1234567887654321

card-type: visa

card-salt: 47562310

card-expiration-date: 01/99

card*: [other card* lines to also be given in CH.1 message]

message; Простой текст для пользователя может содержать много строк.



Все строки card* могут быть спасены в виде единого блока для последующего предоставления в CH.1. card-expiration-date, card-number, card-salt и card-type должны присутствовать всегда. В зависимости от причины неудачи не все поля могут быть представлены в сообщении отклике.



4.3. Сообщения покупателя о покупке, содержащие данные о кредитной карте



Вообще, подключение CyberCash к покупке с помощью кредитной карты происходит после того как пользователь определит, что же он, в конце концов, покупает. Когда клиент нажимает клавишу CyberCash “payment”, продавец посылает покупателю сообщение PR1 в виде тела типа MIME риложение/cybercash.

Если покупатель желает продолжить процедуру, он отвечает продавцу сообщением CH1. Продавец реагирует, послав отклик CH2. В паузе между посылкой CH1 и получением CH2, продавец обычно контактирует с сервером CyberCash посредством сообщений CM*.



4.3.1. PR1 – запрос платежа (payment-request)



Это сообщение является первым, которое определено CyberCash в процессе торговой сделки со стороны продавца. Собственно покупка произведена, так как мы собираемся ее оплатить.

#####################################################################

Отправитель: MerchantApp

Получатель: CyberApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

type: payment-request

merchant-ccid: ACME-012

merchant-order-id: 1231-3424-234242

merchant-date: 19950121100505.nnn

note;

Товары ACME

Покупка 4 пар "Rocket Shoes" по цене $39.95 каждая.

Доставка и вручение $5.00

Общая цена: 164.80

Доставить по адресу: Wily Coyote 1234 South St. Somewhere, VA 12345

merchant-amount: usd 164.80

accepts: visa:CC001, master:CC001,amex:CC001,JCPenny:VK005,macy:VK006

url-pay-to: http://www.ACME.com/CybercashPayment

>url-success: http://www.ACME.com/ordersuccess

>url-fail: http://www.ACME.com/orderfail

merchant-signed-hash:

a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh

Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD



$$-CyberCash-End-lSLzs/vFQ0BXfU98LZNWhQ==-$$

Скрытая секция здесь отсутствует.

#####################################################################

При формировании подписанного продавцом хэша используется секретный ключ продавца. Хэш формируется для полей: type, merchant-ccid, merchant-order-id, date, note, merchant-amount, accepts, url-pay-to, url-success, url-fail

#####################################################################

Это сообщение подписывается продавцом, но покупатель не может непосредственно проверить эту подпись. Когда платеж произведен, Покупатель подписывает хэш (полученный непосредственно покупателем) платежа. Если соответствия не будет, CyberCash блокирует платежную операцию.



accepts:
Программа клиента распознает только одно слово имени карты из поля accepts сообщения PR1. Например,

MasterCard

AmericanExpress

Распознаны как

Master card

American express

Не распознаны. MasterCard и masterCard распознаются оба как master card.

За типом карты следует указатель ключа. Для основного ряда кредитных карт это будет CC*. Клиент может использовать или игнорировать * номер по своему выбору. Для личной карты это будет VK*, где * представляет собой ключ CheckFree, который следует использовать. Карты разделяются запятыми, указатель ключа следует за типом карты и двоеточием.



url-pay-to
указывает, куда следует послать CH1.



url-fail
и url-success несут информацию о том, где броузер должен искать данные в случае успеха или неудачи.



4.3.2. CH1 – платеж через кредитную карту (credit-card-payment)



Это сообщение осуществляет представление кредитной карты для выполнения платежа. ####################################################################

Отправитель: CyberApp

Получатель: MerchantApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

type: card-payment

id: myCyberCashID

order-id: 1231-3424-234242

merchant-ccid: ACME-012

transaction: 78784567

date: 19950121100505.nnn

pr-hash: c77VU/1umPKH2kpMR2QVKg==



pr-signed-hash:

a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh

Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD

cyberkey: CC1001

opaque:

iff/tPf99+Tm5P7s3d61jOWK94nq9/+1jOWK9+vr9+b+94n3tYzmiveJ9/+09/334ubg

3rWM5Ir3ier3/7WM5Ir36+v35v73ife1jOWK94n3/7T3/ffm5uD+7N339/f39/eq3ff3

9/eFiJK5tLizsoeSmpW7uLS8/7iio7Wisfv38biio7uyufv3tfv35uH+7N3d9/exuKX3

5+z3vuu4oqO7srnsvvz8/venoqO0v7al/7iio7WisYy+iv7s3ff3p6KjtL+2pf/wi7nw

3ard3Q==

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

Скрытый ключ. Создан с использованием общедоступного ключа шифрования CyberCash, на который указывает CyberKey.

#####################################################################

Содержимое скрытой секции:

swversion: 0.8win

>amount: usd 10.00

card*: [из успешно прошедшего BC4 (включает в себя время действительности кредитной карты, ее номер, тип и card-salt)]

Подпись:

meO38aULnoP09VhTS2E56tnuZBRRlGfbwqaleZ9zNnv7YjExJKBFxuaqYTUDEj427HHh

mm9BVmHRwCq6+8ylZXixGHI1I9A/ufAMrpqMIi6DS3PRlc8WC3CCWoAHyAqr

#####################################################################

type, id, order-id, merchant-ccid, transaction, date, pr-hash, pr-signed-hash, cyberkey, swversion, amount, card*

#####################################################################

Поле pr-signed-hash тождественно полю подписанного продавцом хэша (merchant-signed-hash) в сообщении PR1.



4.3.3. CH2 – отклик оплаты с помощью карты (charge-card-response)



Отклик покупателю на CH1-попытку оплатить покупку с помощью кредитной карты. Индицирует успех или неудачу.

#####################################################################

Отправитель: MerchantApp

Получатель: CyberApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

type: charge-card-response

merchant-ccid: ACME-012

id: myCyberCashID

transaction: 78784567

date: 1995121100500.nnn

merchant-date: 19950121100505.nnn



merchant-response-code: failure/success/etc.

pr-hash: 7Tm/djB05pLIw3JAyy5E7A==

pr-signed-hash:

a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh

Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD

merchant-message; Это сообщение от продавца следует отобразить пользователю. Может иметь много строчек и не имеет защиты.

opaque: [может отсутствовать, смотри объяснение]

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

>rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

Скрытый ключ. Ключ сессии покупателя, взятый из CH1 и переданный через CM1 для ID и транзакции.

#####################################################################

Закрытая секция содержит (из CM.6):

server-date: 19950121100706.nnn

amount: usd 10.00

order-id: 1231-3424-234242

card*: [из успешного BC4]

response-code: failure/success/etc.

swseverity: fatal/warning

swmessage; Ujdjhbn CyberApp, что это закрытая часть. Этот текст отображается для пользователя [присутствует только, когда присутствует SWSeverity].

message;

Свободный комментарий причины неудачи или успеха. Этот текст должен быть отображен для покупателя приложением CyberCash.

Закрытая секция является опционной, так как сообщение CH1 продавцу может не пройти, из-за неверного идентификатора заказа (order-id), даты, ошибочного идентификатора продавца (merchant-ccid) и т.д.. Таким образом, сервер не может быть вовлечен, так как в данной ситуации не существует безопасного механизма генерации закрытой секции сообщения.

Если транзакция осуществляет эту процедуру посредством сервера (через CM*), тогда код отклика на верхнем уровне должен быть зеркальным по отношению к коду-отклику сервера, посланного продавцу.


Заметим, что могут быть два сообщения, одно от продавца и одно от сервера.



4.4. Сообщения продавца о покупке, связанные с кредитной картой



Продавец представляет покупки через кредитную карту, делает корректировки и выражает предпочтения через последовательность CM*. Вообще, цикл, сопряженный с кредитной картой включает авторизацию для покупки, включение покупки в перечень на оплату и собственно осуществление оплаты. Имеется возможность удалить определенную позицию из перечня или аннулировать всю сделку (смотри раздел 5.1.). Авторизации всегда осуществляется клиентом через отклики-сообщения CM1 или CM2. Если приобретение выполняется получателем (acquirer) или каким-то другим объектом между сервером CyberCash и получателем, это делается посредством сообщений CM3 или CM2 в зависимости от соглашения между продавцом и объектом, осуществляющим приобретение. Возвраты обрабатываются с помощью сообщений CM5. Сообщение CM4 служит для возврата покупки или возврата до оплаты сделки. CM6 является форматом сообщения, используемого для откликов на все другие CM*-сообщения.

Последовательности MM* были также применены для оплат, осуществляемых продавцом, как описано в разделе 3.4.7

Современные система оплаты предполагают, что продавец знает номер кредитной карточки. Таким образом, чтобы работать с этими системами, предусмотрены специальные обходные сообщения, которые позволяют снабдить продавца нужной информацией, в противном случае CyberCash делает все, чтобы скрыть номер кредитной карты от продавца. Смотри разделы 3.4.8 и 3.4.9. Это делает получение такой информации контролируемым.

Многие современные продавцы работают в режиме "terminal capture", где авторизации получаются продавцом.



4.4.1. CM1 - auth-only (аутентификация)



Это сообщение используется продавцом для выполнения операции авторизации кредитной карты покупателя.

#####################################################################

Отправитель: MerchantApp

Получатель: CyberServer

#####################################################################



Пример сообщения:

$$-CyberCash-0.8-$$

merchant-ccid: ACME-69

merchant-transaction: 123123

merchant-date: 19950121100705.nnn

merchant-cyberkey: CC1001

cyberkey: CC1001

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

merchant-opaque:

6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf

aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO

dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj

j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84

F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ

mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr

mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

Содержимое скрытой секции продавца:

type: auth-only

order-id: 12313424234242

merchant-amount: usd 10.00

pr-hash: 7Tm/djB05pLIw3JAyy5E7A==

pr-signed-hash:

a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh

Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD

id: myCyberCashID

transaction: 78784567

date: 19950121100505.nnn

merchant-signature:

v4qZMe2d7mUXztVdC3ZPMmMgYHlBA7bhR96LSehKP15ylqR/1KwwbBAX8CEqns55UIYY

GGMwPMGoF+GDPM7GlC6fReQ5wyvV1PnETSVO9/LAyRz0zzRYuyVueOjWDlr5

#####################################################################

Ключ продавца закрытой части генерируется из общедоступного ключа CyberCash, на который указывает merchant-cyberkey. Закрытую часть сообщения покупателя (Opaque) - смотри CH1.

#####################################################################

Содержимое закрытой части и подпись: (в точности как в CH1)

swversion: 0.8win



amount: usd 10.00

card*: [from successful BC4 (includes card-expiration-date, card-number, and card-salt)]

Подпись:

48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK

+IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs

#####################################################################

Подпись продавца покрывает следующие поля:

merchant-ccid, merchant-transaction, merchant-date, merchant-cyberkey, type, order-id, merchant-amount, pr-hash, pr-signed-hash, id, transaction, date, cyberkey

Подпись покупателя: смотри CH1

#####################################################################

Пояснение:

Подпись продавца гарантирует целостность большей части сообщения. Проверка корректности подписи покупателя гарантирует, что закрытая часть сообщения покупателя не была повреждена или заменена.



4.4.2. CM2 - auth-capture



Осуществляет авторизацию и вводит сумму оплаты сделки. Сообщение аналогично CM1, хотя и имеет другой код типа.

#####################################################################

Отправитель: MerchantApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

[exactly the same as CM1 except

type: auth-capture

]



4.4.3. Сообщение CM3 - post-auth-capture



Сообщение аналогично CM1 за исключением того, что оно имеет другой тип и снабжено полем кода авторизации (которое включено в подпись).

#####################################################################

Отправитель: MerchantApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

merchant-ccid: ACME-012

merchant-transaction: 123123

merchant-date: 19950121100705.nnn

merchant-cyberkey: CC1001

cyberkey: CC1001

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs



rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

merchant-opaque:

6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf

aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO

dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj

j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84

F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ

mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr

mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

Содержимое скрытой секции продавца:

type: post-auth-capture

authorization-code: a12323

order-id: 1231-3424-234242

merchant-amount: usd 10.00

pr-hash: 7Tm/djB05pLIw3JAyy5E7A==

pr-signed-hash:

a/0meaMHRinNVd8nq/fKsYg5AfTZZUCX0S3gkjAhZTmcrkp6RZvppmDd/P7lboFLFDBh

Ec0oIyxWeHfArb3OtkgXxJ7qe0Gmm/87jG5ClGnpBnw0dY7qcJ6XoGB6WGnD

id: myCyberCashID

transaction: 78784567

date: 19950121100505.nnn

merchant-signature:

vxyEF1ZHn5Rgmtms3H3t/+UB6RAvZQA1AdddjvlS0H75N1x83FyJuh8V9Ok6t4EUQQZ6

Mnptzc6phJi3Ar0s0oumELsdc8upJdXpNpJV021PGJXfDKfHP0heJIWLodXr

#####################################################################

Ключ закрытой секции продавца генерируется из общедоступного ключа шифрования CyberCash, идентифицируемого в merchant-cyberkey.

Закрытая секция сообщения покупателя (Opaque) - смотри CH1.

#####################################################################

Содержимое закрытой секции и подпись: (в точности как в CH1)

swversion: 0.8win

amount: usd 10.00

card*: [в случае успешного BC4 (включает в себя card-salt, номер карты и срок действия карты)]

Подпись:

48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK

+IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs

#####################################################################

Подпись продавца покрывает следующие поля:



merchant-ccid, merchant-transaction, merchant-date, merchant-cyberkey, type, authorization-code, order-id, merchant-amount, pr-hash, pr-signed-hash, id, transaction, date, cyberkey

#####################################################################

Подпись продавца гарантирует целостность большей части сообщения. Проверка подписи покупателя гарантирует, что закрытая секция сообщения не была повреждена или заменена.



4.4.4. Сообщение об удалении CM4



Аннулирует возврат денег, если сообщение получено до окончательного расчета. Сообщение аналогично сообщению CM1 за исключением того, что оно имеет другой код типа и снабжено полем номера ссылки возврата (retrieval-reference-number field) (которое включается в подпись).

#####################################################################

Отправитель: MerchantApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

merchant-ccid: ACME-012

merchant-transaction: 123123

merchant-date: 19950121100705.nnn

merchant-cyberkey: CC1001

cyberkey: CC1001

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

merchant-opaque:

6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf

aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO

dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj

j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84

F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ

mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr

mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################



Содержимое скрытой секции продавца:

type: void

retrieval-reference-number: 432112344321

order-id: 1231-3424-234242

merchant-amount: usd 10.00

pr-hash: WATCQuH2q17lRuoxD78YBg==

pr-signed-hash:

8zqw0ipqtLtte0tBz5/5VPNJPPonfTwkfZPbtuk5lqMykKDvThhO0ycrfT7eXrn/hLUC

kXoSctahEVdw1KBJbp0EVr1zVzcN9Aa7m2fJgxNfiisTgIRW+PMaa78rn+Ov

id: myCyberCashID

transaction: 78784567

date: 19950121100505.nnn

Подпись продавца:

lkjladjslkjflsakjflkjsdljflsakjflkjsdljflsakjflkj flsakjflkjsdljflsakjflkjsdljflsajflksdjflksdjflsdjssf=

#####################################################################

Ключ закрытой секции продавца генерируется из общедоступного ключа шифрования CyberCash, идентифицируемого в Merchant-CyberKey.

Закрытая секция сообщения покупателя (Opaque) - смотри CH1.

#####################################################################

Содержимое закрытой секции и подпись: (в точности как в CH1)

swversion: 0.8win

amount: usd 10.00

card*: [из успешного bc4 (содержит card-salt, номер карты и срок ее действия)]

Подпись:

48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK

+IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs

#####################################################################

Подпись продавца покрывает следующие поля: merchant-ccid, merchant-transaction, merchant-date, merchant-cyberkey, type, retrieval-reference-number, order-id, merchant-amount, pr-hash, pr-signed-hash, id, transaction, date, cyberkey

#####################################################################>

Подпись продавца гарантирует целостность большей части сообщения. Проверка корректности подписи покупателя гарантирует, что невидимая часть сообщения клиента не была изменена или замещена.



4.4.5. CM5 - возврат



Возврат полученного ранее платежа. В реальности оплата отрицательной суммы. Сообщение совпадает с CM1 за исключением поля тип.

#####################################################################

Отправитель: MerchantApp

Получатель: CyberServer



#####################################################################

Пример сообщения:

[в точности как и CM1, только поле type: return]



4.4.6. CM6 – отклик на операцию оплаты (charge-action-response)



Это квитанция, предоставляемая продавцу в качестве уведомления о выполнении платежной операции. Индицирует успех, неудачу или предоставляет какую-то иную информацию.

#####################################################################

Отправитель: CyberServer

Получатель: MerchantApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

merchant-ccid: ACME-012

merchant-transaction: 123123

merchant-date: 19950121100705.nnn

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

merchant-opaque:

6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf

aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO

dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj

j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84

F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ

mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr

mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

Скрытый ключ продавца. Ключ сессии, который совпадает с CM1/2/3/4/5 для той же транзакции и CCID продавца.

Скрытый ключ. Тот же ключ сессии покупателя, что и в сообщении CH1 переданном через CM* для данного ID и транзакции

#####################################################################

Содержимое скрытой секции продавца:

type: charge-action-response

server-date: 19950121100706.nnn



action-code: XXX [per ISO 8583]

response-code: failure/success/etc.

order-id: 1231-3424-234242

pr-hash: 7Tm/djB05pLIw3JAyy5E7A==

pr-signed-hash:

8zqw0ipqtLtte0tBz5/5VPNJPPonfTwkfZPbtuk5lqMykKDvThhO0ycrfT7eXrn/hLUC

kXoSctahEVdw1KBJbp0EVr1zVzcN9Aa7m2fJgxNfiisTgIRW+PMaa78rn+Ov

retrieval-reference-number: 432112344321

authorization-code: a12323

card-hash: 7Tm/djB05pLIw3JAyy5E7A==

{

card-prefix: nnxxxx [ Returned if merchant is not full-PAN]

}

или

{

card-number: 1234567890123456 [Returned if merchant is full-PAN]

}

expiration-date: 12/34 [всегда присутствует]

merchant-swseverity: fatal/warning

merchant-swmessage; Сообщение для продавца об устаревшем номере протокола в стартовой $$-строке сообщения продавца.

merchant-message;

Свободный текст, поясняющий причины неудачи или успеха.

Этот текст направляется сервером продавцу...

id: myCyberCashID

transaction: 78784567

date: 19950121100505.nnn

Содержимое скрытой секции (покупателя):

server-date: 19950121100706.nnn

amount: usd 10.00

order-id: 1231-3424-234242

card*: [from successful BC4]

response-code: failure/success/etc.

swseverity: fatal/warning

swmessage; Говорит CyberApp, что оно является устаревшим. Этот текст отображается для пользователя. [присутствует только, когда имеется SWSeverity]

message;

Свободный текст, поясняющий причины неудачи или успеха. Этот текст следует отобразить покупателю с помощью приложения CyberCash.



retrieval-reference-number
необходимо для аннулирования.
authorization-code необходим для post-auth-capture. Оба эти поля присутствуют только в сообщении CM6, если оно было присланы банком. Все зависит от выполняемой операции.
card-prefix (префикс карты) представляет собой первые две и последние четыре цифры номера кредитной карты. По усмотрению банка продавца присылается номер кредитной или ее префикс.
card-hash является в действительности хэшем всего номера кредитной карты и salt, представленной покупателем. card-hash необходим для того, чтобы продавец мог, если хочет, сортировать транзакции покупателя по его кредитным картам, не зная их номеров.
card* представляет собой поля card*, полученные вместе с сообщениями CM*, присланными в качестве отклика. Они появляются в алфавитном порядке.
server-date дублируется в целях безопасности в закрытой секции покупателя.
[] комментарии, появляющиеся после некоторых полей.
<


/p> 4.4.7. Последовательности сообщений MM*



Последовательности сообщений CM* представляют собой первичную систему покупок с помощью кредитных карт CyberCash для безопасной обработки денежных оплат клиентами системы. Однако продавцы, которые авторизованы их банком для получения оплаты товаров и услуг, могут также получать оплату по телефону, по почте или наличными. Чтобы исключить для продавца необходимость иметь вторую параллельную систему обработки этих платежей, определены последовательности сообщений MM1 - MM6, которые служат для организации таких менее безопасных транзакций. Сообщения MM* очень похожи на последовательность сообщений CM*, но закрытая секция покупателя на самом деле подписана продавцом, при этом не требуется какого-либо дополнительного CyberCash ID покупателя или ссылки на его кредитную карту.



4.4.8. CD1 – запрос данных о кредитной карте



Используется продавцом для получения номера карты и т.д., если нужна информация для разрешения сомнений.

#####################################################################

Отправитель: MerchantApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

merchant-ccid: ACME-69

merchant-transaction: 123123

merchant-date: 19950121100705.nnn

merchant-cyberkey: CC1001

cyberkey: CC1001

opaque:

EDD+b9wAfje5f7vscnNTJPkn1Wdi7uG3mHi8MrzLyFC0dj7e0JRjZ2PmjDHuR81kbhqb

nX/w4uvsoPgwM5UJEW0Rb9pbB39mUFBDLPVgsNwALySeQGso0KyOjMxNs1mSukHdOmDV

4uZR4HLRRfEhMdX4WmG/2+sbewTYaCMx4tn/+MNDZlJ89Letbz5kupr0ZekQlPix+pJs

rHzP5YqaMnk5iRBHvwKb5MaxKXGOOef5ms8M5W8lI2d0XPecH4xNBn8BMAJ6iSkZmszo

QfDeWgga48g2tqlA6ifZGp7daDR81lumtGMCvg==

merchant-opaque:

6BVEfSlgVCoGh1/0R+g1C143MaA6QLvKpEgde86WWGJWx45bMUZvaAu4LVeqWoYCqSGf

aWKUF7awol0h1i1jtgieyAcXB8ikvRJIsupSAwsRMyoNlekR6tucvfv/622JY7+n7nGO

dGbMzP0GJImh2DmdPaceAxyOB/xOftf6ko0nndnvB+/y2mFjdUGLtFQP/+3bTpZttZXj

j7RO1khe1UrAIk2TGQJmNw+ltsu0f42MgsxB8Q31vjPtoiPi5LEmD0Y4jlpJ7Jg2Ub84

F9vJhYpmzNkdiJUe83Hvo/xfJRbhafJpXFEsUZwQK0jU1ksU6CQd2+CPBB+6MxtsHoxJ



mjD6ickhd+SQZhbRCNerlTiQGhuL4wUAxzGh8aHk2oXjoMpVzWw2EImPu5QaPEc36xgr

mNz8vCovDiuy3tZ42IGArxBweasLPLCbm0Y=

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

Содержимое скрытой секции продавца:

type: card-data-request

password: xyzzy

server-date: 19950121100505.nnn [optional]

order-id: 12313424234242

merchant-amount: usd 10.00

pr-hash: 7Tm/djB05pLIw3JAyy5E7A==

pr-signed-hash:

IV8gWHx1f8eCkWsCsMOE3M8mnTbQ7IBBcEmyGDAwjdbaLu5Qm/bh06OX1npe2d3Hijxy

+X8vKcVE6l6To27u7A7UmGm+po9lCUSLxgtyqyn3jWhHZpc5NZpwoTCf2pAK

id: myCyberCashID

transaction: 78784567

date: 19950121100505.nnn

Подпись продавца:

8zqw0ipqtLtte0tBz5/5VPNJPPonfTwkfZPbtuk5lqMykKDvThhO0ycrfT7eXrn/hLUC

kXoSctahEVdw1KBJbp0EVr1zVzcN9Aa7m2fJgxNfiisTgIRW+PMaa78rn+Ov

#####################################################################

Скрытый ключ продавца генерируется из общедоступного ключа шифрования CyberCash, идентифицированного в merchant-cyberkey.

Закрытая секция сообщения покупателя (Opaque) - смотри CH1.

#####################################################################

Содержимое закрытой секции и подпись: (в точности как в CH1)

swversion: 0.8win

amount: usd 10.00

card*: [от успешного BC4 (включает в себя время действия карты, номер карты и card-salt)]

Подпись:

48SBKUfojyC9FDKCwdCYNvucgiDxYO9erZW4QndIXZRyheTHXH8OeIhwUkyLmgQSD/UK

+IX9035/jUkdNPOxUQq9y/beHS1HU9Fe0wlzfXYRtnjlqvQX+yUfQ4T7eNEs

#####################################################################

Подпись продавца покрывает следующие поля: merchant-ccid, merchant-transaction, merchant-date, merchant-cyberkey, type, password, server-date, order-id, merchant-amount, pr-hash, pr-signed-hash, id, transaction, date, cyberkey

Подпись покупателя: смотри CH1

#####################################################################

[смотри также объяснения для CM1]

Продавцу может быть нужно знать, какая карта используется, и некоторую другую информацию, для того чтобы разрешить определенные проблемы, возникающие при транзакции.


Вся эта информация содержится в исходном сообщении CH1, вложенном в CM1 для реализации транзакции. Если продавец сохраняет CM1 и другую информацию транзакции, то он может послать это CD1-сообщение серверу.

Пароль является дополнительным уровнем безопасности, он предназначен для ручного ввода со стороны продавца, чтобы авторизовать какую-то необычную операцию. Сервер запоминает хэш CCID продавца и пароля.



4.4.9. CD2 – отклик на данные кредитной карты



Отклик на CD1 с указанием на успешный или нет прием данных о кредитной карте.

#####################################################################

Отправитель: CyberServer

Получатель: MerchantApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

merchant-ccid: ACME-012

merchant-transaction: 123123

merchant-date: 19950121100705.nnn

merchant-opaque:

t731/86R72ZLrqHLIf0VG6m3ybvs+dG6K705L8LFKEXgCti0NGjK83CwDsUdiso7U1JP

2Z0BClVHLmhIBY7+QXx5iCEGHy8JKC9IWyNNi2O/OOIDgLeJAkMSZYbNQrSKViY34imS

0s7Q6uDk9wV0fixjvRBuNO2B7urWWsqfkLOYDnHy0RvhyUzYxLrMaTX+/6IkyU5Z0lH3

BXYBUNV8DgitEjgLXmyWuXRDlEBN02yeZgsFRm9GmuBHfCTySm2XqnifizpmKMUa9UiH

onNx9W86fuBdcJF7CJgH5Gct2M/dx/f2VpoRkmeSmWxFrYi8wgtvddSXF9my40NZ8WZz

CEUEvQhcmruopwEeehv+bejc3fDDZ23JKrbhlZ17lSvFR14PKFsi32pXFqTO0ej9GTc5

L6c8nM3tI1qdHNCe0N5f7ASdKS0tYSxAYJLIR6MqPrXjNJEaRx7Vu1odMlkgrzGOV1fo

5w33BQHK3U2h+1e5zYBeHY3ZYG4nmylYYXIye4xpuPN4QU0dGrWZoImYE44QOwjd5ozl

xulPBjj6cpEI/9wTwR3tpkBb4ZfYirxxnoj9JUkPK9Srv9iJ

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

Скрытый ключ: ключ сессии из CD1.

#####################################################################

Содержимое скрытой секции:

type: card-data-response

server-date: 19950121100706.nnn

response-code: failure/success/etc.

order-id: 1231-3424-234242

pr-hash: 7Tm/djB05pLIw3JAyy5E7A==

pr-signed-hash:

IV8gWHx1f8eCkWsCsMOE3M8mnTbQ7IBBcEmyGDAwjdbaLu5Qm/bh06OX1npe2d3Hijxy

+X8vKcVE6l6To27u7A7UmGm+po9lCUSLxgtyqyn3jWhHZpc5NZpwoTCf2pAK



card-hash: 7Tm/djB05pLIw3JAyy5E7A==

card-number: 4811123456781234

card-type: visa

card-name: John Q. Public

expiration-date: 01/99

merchant-swseverity: fatal/warning

merchant-swmessage; Сообщение для продавца о том, что номер информационного протокола в стартовой строке $$ сообщения продавца устарел.

merchant-message;

Свободный текст, поясняющий ошибку или успех операции. Этот текст предназначен сервером для продавца.

id: myCyberCashID

transaction: 78784567

date: 19950121100505.nnn

Сообщение в норме возвращает выбранные поля из дешифрованной закрытой части CH1, в том формате, в каком они были посланы серверу в CD1.



4.5. Прикладные сообщения и уведомления об ошибках



Оказалось необходимо ввести в систему CyberCash сообщения номера утилиты, статуса запроса, и специального уведомления об ошибке.

Желательно иметь возможность проверять коннективность, с некоторой точностью синхронизовать часы и определять версии протокола и приложения клиента. Это сделано с помощью сообщения P1, посылаемого клиентом серверу и отклика P2, возвращаемого сервером клиенту.

Клиенты должны быть способны определить состояние предшествующих транзакций, когда клиент или продавец закрэшился во время сессии или произошла потеря информации в ходе или по завершении транзакции. Определены два сообщения-запроса о транзакции TQ1 и TQ2. Один из них осуществляет запрос, а второй аннулирует транзакцию, если она не завершена. Откликом на оба эти запроса является сообщение TQ3, посылаемое сервером.

Так как система работает в режиме запрос-отклик, имеется две ситуации, когда необходимы специальные сообщения об ошибках. Если запрос оказался не интерпретируемым или имеет неизвестный код типа, посылается уведомление об ошибке UNK1. Если отклик оказался не интерпретируемым или имеет неизвестный код типа или имела место какая-то другая ошибка, которая должна быть зафиксирована в журнале событий сервера CyberCash. Клиент или продавец направляют серверу диагностические сообщения DL1 или DL2.



4.5.1.


P1 - ping



Простая проверка доступности сервера со стороны клиента. Здесь для минимизации избыточности не используется никаких криптографических методов.

#####################################################################

Отправитель: CyberApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

type: ping

id: myCyberCashID [optional]

transaction: 123123213

date: 19950121100505.nnn

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

id является опционным, так как персона может быть еще не установлена.



4.5.2. P2 – отклик на ping



Отклик на ping P1. Для минимизации избыточности здесь не используется никаких криптографических методов.

#####################################################################

Отправитель: CyberServer

Получатель: CyberApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

type: ping-response

id: myCyberCashID [если присутствует в P1]

transaction: 12312313

date: 19950121100505.nnn

server-date: 19950121100506.nnn

swseverity: fatal/warning [отсутствует, если все в порядке]

swmessage; Говорит CyberApp, что оно использует устаревший протокол.

Данный текст отображается для пользователя. [Присутствует только при наличии SWSeverity.]

response-code: success/failure/etc.

message;

Свободный текст комментария об ошибке или успехе.

Этот текст должен быть отображен отправителю его прикладной программой CyberCash.

supported-versions: 08.win, 0.81win, 0.8mac

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

#####################################################################

swversion не включается в P1 по соображениям секретности, по этой причине swseverity и swmessage присутствуют, только если сервер может сказать, что эти вещи устарели.

supported-versions позволяет клиенту знать как можно быстрее, какие версии поддерживаются приложением, а какие нет.





4.5.3. TQ1 – запрос транзакции



Запрос клиента серверу о состоянии транзакции.

#####################################################################

Отправитель: CyberApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

id: MyCyberCashID

date: 19950121100505.nnn

transaction: 12312314

cyberkey: CC1001

opaque:

VFaztHuj757Jrv+JxZFsHORy/zgkrxhBCu9cPdE04c1NnXzVlGOHygpSl+UGbUvnhkYl

>21QQaHkaE3geccRk03cqFYoLNRCclImcsyeIZCgVt+2dJTj1V+E7R7ePQtCj+0gY42+V

L5BWhVtmDQFyg1DdJ6n3S/er6ZuObAjpcAogG+T1Na5dJmrTA1wRMiYVkqhXi2KMYdur

3U47P8ZGUza7W0MST3DgvviN0kVhtmHEnm515mo6NTQdfdxw9WZpy6vMqrBGk2nTgi2c

bnf+muO0+kiNPXVvEzRrO8o=

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ. Генерируется ключом шифрования CyberCash, идентифицированным CyberKey

#####################################################################

Содержимое скрытой секции:

type: transaction-query

swversion: 0.8win

begin-transaction: 1234

end-transaction: 4321

Подпись:

jJfFsKvOxLaV87gxu7lIPet3wIDwh1H2F61reYC9jmUrS6WAtUVFG9aCNuTEBoMixF0X

vD5oPfyheJRIlnL6i0c4o/bfyO3edKAacmWjTmKt6/4y9p3qgvKkSX8r9aym

#####################################################################

Подпись содержит в себе поля: id, date, transaction, cyberkey, type, swversion, begin-transaction, end-transaction

#####################################################################

Объяснение:

Это запрос клиента сообщить ему о состоянии предшествующей транзакции или транзакций.



begin-transaction
и end-transaction могут совпадать.



4.5.4. TQ2 – аннулирование транзакции



Запрос клиента серверу в связи с аннулированием транзакции.

#####################################################################

Отправитель: CyberApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

id: MyCyberCashID



date: 19950121100505.nnn

transaction: 12312314

cyberkey: CC1001

opaque:

VFaztHuj757Jrv+JxZFsHORy/zgkrxhBCu9cPdE04c1NnXzVlGOHygpSl+UGbUvnhkYl

21QQaHkaE3geccRk03cqFYoLNRCclImcsyeIZCgVt+2dJTj1V+E7R7ePQtCj+0gY42+V

L5BWhVtmDQFyg1DdJ6n3S/er6ZuObAjpcAogG+T1Na5dJmrTA1wRMiYVkqhXi2KMYdur

3U47P8ZGUza7W0MST3DgvviN0kVhtmHEnm515mo6NTQdfdxw9WZpy6vMqrBGk2nTgi2c

bnf+muO0+kiNPXVvEzRrO8o=

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ: полученный из ключа шифрования CyberCash, заданного CyberKey

#####################################################################

Содержимое скрытой секции:

type: transaction-cancel

swversion: 0.8win

begin-transaction: 1234

end-transaction: 4321

Подпись:

kD7DEav2uLQIYMtP9gbhYaBUpB2a5whNwnK2eXbbyTCf56F6dl3DIVf7D8Z4WxbY2YZn

ByRIKeqlhmss7fbdnBiDYmKfOuc+I4bi/Oslml5riaciQhTd2JdHG+PCcHwZ

#####################################################################

Подпись защищает следующие поля: id, date, transaction, cyberkey, type, swversion, begin-transaction, end-transaction

#####################################################################

Объяснение:>

Это попытка клиента аннулировать предыдущую транзакцию или транзакции.>

begin-transaction и end-transaction могут совпадать.

Запрос аннулирования транзакции (TQ.2) определен для взаимодействия клиента с сервером. Этот запрос позволяет клиенту запросить состояние операции и предотвратить операцию, если она еще не осуществлена.



4.5.5. TQ3 – отклик транзакции (transaction-response)



Отклики, генерируемые TQ1 или TQ2

#####################################################################

Отправитель: CyberServer

Получатель: CyberApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

id: mycybercashid

date: 19950121100505.nnn

transaction: 12312314

server-date: 19950121100505.nnn

opaque:

eFXRL+H0J5q318M21wRdtcbhu9WCyLysQkeF9oIcjtbstymx343bbt0EAtU1gcJaUKJZ



3skgvwrhcxU4bFcE68OPlUXAvLq10I3MczPYPsiGrsU0K4bZtQvDZmn727QQAfONBm5s

s1yjIha+Fj481BJQs0CTYc3ju90lAjCYgirXtnnR6yJXoDO75b7UjthvHSnrTWVZvktX

PvTuUCYzbXSFoYvwFM3Y+yHqSHlmWutYKQpYze8zbUSDQfmwTCJyw3aY2JasZ+xMP/CD

JWbCA+gCLBYCnvzM/ExKTZTFD3xr5JBfNbV4p6CiK6lsfRFD7maAK6TSVnWjwCEJNpOv

fyllfWD04fT7LINQcjJiQK1Pk/912Tk6Q35eRaQZorwv2hnY/7By2OkPyFdAqFL+D0H6

TqzxmdEjEFKxi/PPT1+Cs/Nszy8wZzaGg8iWATfARY6stl+02dDhwOoFXSBNvchlVrcI

IlvhumSIQs29Pntj3DbkYo4IEmmN/qi1vnzld22q7lA1q/CQakyc7jlQUFISx76buqwy

35XiC9Yn8flE4Va14UxMf2RCR1B/XoV6AEd64KwPeCYyOYvwbRcYpRMBXFLyYgWM+ME1

+yp7c66SrCBhW4Q8AJYQ+5j5uyO7uKyyq7OhrV0IMpRDPjiQXZMooLZOifJPmpvJ66hC

VZuWMuA6LR+TJzWUm4sUP9Zb6zMQShedUyOPrtw1vkJXU1vZ5aI8OJAgUcLEitcD+dsY

Df4CzA00fC10POkJ58HZB/pSBfUrHAa+IqMHyZkV/HBi9TjTwmktJi+8T9orXS0jSvor

dMTGWn0ifETy2VXt

$$-CyberCash-End-0QXqLlNxrn4GNQPPk9AO1Q==-$$

#####################################################################

Скрытый ключ. Ключ сессии из TQ1/TQ2 для текущих значений транзакции и ID.

#####################################################################

Содержимое скрытой секции:

type: transaction-response

response-code: success/failure/etc.

message; текстовое сообщение, посылаемое сервером покупателю.

swseverity: fatal/warning

swmessage; Сообщение, указывающее, что программа CyberApp является устаревшей. Может содержать несколько строк.

report-fee: usd 0.15 [если не равно нулю]

transaction-1: old-transaction-number

transaction-status-1: success/failure/pending/cancelled/etc.

server-date-1: 19951212125959.nnn

date-1: 19950121100505.nnn

type-1: auth-only/etc.

Оплата отчета (Report-fee) представляет собой уведомление о том, что данный отчет имеет цену и его предоставление зависит от оплаты. Транзакции с заданным номером может соответствовать несколько транзакций (аутентификация, оплата и т.д.).



Термины



"исходная транзакция" относится к платежу или другой транзакции, которая была запрошена или аннулирована. Заметим, что эта транзакция в действительности не является резидентной для сервера.
"request" относится к запрашивающим сообщениям TQ.2 или TQ.1.
id: идентификатор сообщения-запроса
date: дата сообщения-запроса
transaction: транзакция сообщения-запроса
server-date: текущая дата/время
type: Отклик транзакции
response-code: код отклика для сообщения-запроса, может быть одним из:
  "success" означает, сообщение прошло успешно. Не подразумевает требования присылки состояния запроса.
  "failure-hard" означает, что сообщение-запрос не прошло из-за некорректного формата или по какой-то другой причине.
  "failure-swversion" означает, что запрос не был обработан из-за проблем ревизии программного обеспечения.
message: сообщение используется только для транзакции TQ, а не к состоянию транзакций, статус или аннулирование которых были запрошены. Сообщение формируется на основании кода отклика:
  "success" сообщение проигнорировано.
  "failure-hard" используется стандартное сообщение уведомление о неудаче.
  "failure-swversion" в случае фатальной ошибки используется стандартное сообщение типа swversion
swseverity: относится к сообщению-запросу
swmessage: относится к сообщению-запросу - для полей запрос/отмена ('N' берется из ряда от 1 до N)
transaction-N: номер исходной транзакции, или, если исходной транзакции на сервере нет, то номер транзакции запроса состояния транзакции с заданным номером. Состояние исходной транзакции может быть одним из:
  "success" исходная транзакция была успешно проведена. Если запросом было сообщение TQ.2, аннулирование не производится.
  "failure" исходная транзакция не была реализована. Если запросом было сообщение TQ.2, аннулирование не производится.
  "pending" исходная транзакция все еще обрабатывается и окончательный результат пока не известен.
  "canceled" исходная транзакция была аннулирована сервером. Последующий приход исходной транзакции не будет обрабатываться, но будет послан отклик "failure-canceled".
server-date-1: поле server-date из исходной транзакции. Опускается, если исходная транзакция на сервере отсутствует.
date-1: поле даты исходной транзакции. Опускается, если исходная транзакция на сервере отсутствует.
type-1: поле типа исходной транзакции. Опускается, если исходная транзакция на сервере отсутствует.
<


/p> 4.5.6. UNK1 – неизвестная ошибка



Это отклик, который посылается, когда запрос так плох, что вы не можете определить его тип или этот тип не известен. Отклик посылается Продавцом Клиенту или Сервером Продавцу, или Сервером Клиенту.

#####################################################################

Отправитель: MerchantApp или CyberServer

Получатель: CyberApp или MerchantApp

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

type: unknown-error

unknown-error-message:

Текст сообщения о причинах ошибки, которое следует представить пользователю. (Не найден CyberCash-обработчик, проверка целостности обработчика не прошла, специфицирована неизвестная версия протокола, специфицирован неизвестный тип и т.д.)

{

server-date: 19950121100506.nnn [если послано сервером]

}

или

{

merchant-date: 19950121100506.nnn [если послано продавцом]

}

x-id: mycybercashID

x-transaction: 123123213

x-date: 19950121100505.nnn

x-cyberkey: CC1001

x-opaque:

2DqiOQfGRZjzddWpEZwGsJnoTsp9Yiri8DE9cPUMPsJ7lTFuE4XHi4QfN2cAipDB2G/G

9hr7Hj4u4xfMky7nPvJurClZejkI8eNp8iXLtrfS4DhR4yCFQjCiKk0dh83p+DDsFVV7

TI3Du2B15sQS+SdaoPwkfVDnJv4Y+b7vu2cN7bG7exCkBapBcJZbReNaWX5sf+U8ypfw

5V6QdMOzNXpef3z+cTTWfGOtmn9T1Pwo1Yi9ObyIf/wiK+IPb+bBZ9UwLZSB+qVMfJmX

GnHXO3AnA/PD+jKYCtsm2Gxv2WB3CuezOyzPtORuqLp5ubgnLBF9aBBjxwLdbn+cp5sm

lw51IHbmo1Jj7H6wyNnRpEjy4tM73jcosBfGeQDHxgyH1uaiFNr2D+WvmuYo7eun2dsy

Wve2O/FwicWHvkg5aDPsgOjzetsn1JCNZzbW

$$-CyberCash-End-7Tm/djB05pLIw3JAyy5E7A==-$$

Это сообщение посылается в качестве отклика, когда не удается найти или понять тип сообщения. Оно всегда имеет в начале поля типа и unknown-error-message. Любые поля запроса, которые удается распознать, копируются с префиксами "x-" в сообщение UNK1, посылаемое в качестве отклика. Таким образом, если появляется x-opaque, это означает, что в исходном запросе было поле opaque и т.д.

Так как покупатель инициирует обмен с продавцом и сервером, а продавец запускает обмен с сервером, это сообщение будет послано только покупателю продавцом или сервером покупателю или продавцу.


Оно должно быть записано для отладочных целей. Вам может быть нужно отслеживать отказы обслуживания посредством сообщений UNK1.



4.5.7. DL1 – диагностическая запись



Клиентская диагностическая запись о плохом сообщении от продавца или сервера.

#####################################################################

Отправитель: CyberApp

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

id: MyCyberCashID

date: 19950121100505.nnn

transaction: 1234

cyberkey: CC1001

opaque:

2DqiOQfGRZjzddWpEZwGsJnoTsp9Yiri8DE9cPUMPsJ7lTFuE4XHi4QfN2cAipDB2G/G

9hr7Hj4u4xfMky7nPvJurClZejkI8eNp8iXLtrfS4DhR4yCFQjCiKk0dh83p+DDsFVV7

TI3Du2B15sQS+SdaoPwkfVDnJv4Y+b7vu2cN7bG7exCkBapBcJZbReNaWX5sf+U8ypfw

5V6QdMOzNXpef3z+cTTWfGOtmn9T1Pwo1Yi9ObyIf/wiK+IPb+bBZ9UwLZSB+qVMfJmX

GnHXO3AnA/PD+jKYCtsm2Gxv2WB3CuezOyzPtORuqLp5ubgnLBF9aBBjxwLdbn+cp5sm

lw51IHbmo1Jj7H6wyNnRpEjy4tM73jcosBfGeQDHxgyH1uaiFNr2D+WvmuYo7eun2dsy

Wve2O/FwicWHvkg5aDPsgOjzetsn1JCNZzbW

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ. Генерируется из ключа шифрования CyberCash, идентифицируемого в CyberKey

#####################################################################

Содержимое скрытой секции:

type: diagnostic-log

message: incorrect order-id

swversion: 0.8win

x-type: original-message-type

x-transaction: original-transaction-number

x-opaque: [ели нельзя дешифровать]

9/eFiJK5tLizsoeSmpW7uLS8/7iio7Wisfv38biio7uyufv3tfv35uH+7N3d9/exuKX3

5+z3vuu4oqO7srnsvvz8/venoqO0v7al/7iio7WisYy+iv7s3ff3p6KjtL+2pf/wi7nw

#####################################################################

Приложение клиента не ожидает отклика на это сообщение. Если дешифрация прошла успешно, дешифрованное исходное сообщение будет заключено в закрытую секцию. Если дешифровка не прошла, не дешифрованная закрытая секция берется из исходного сообщения.



4.5.8. DL2 – диагностические журнальные записи продавца (merchant-diagnostic-log)





Диагностическая запись продавца о плохом сообщении от сервера.

#####################################################################

Отправитель: CyberMerchant

Получатель: CyberServer

#####################################################################

Пример сообщения:

$$-CyberCash-0.8-$$

merchant-ccid: MyCyberCashID

merchant-transaction: 1234

merchant-date: 19950121100505.nnn

merchant-cyberkey: CC1001

merchant-opaque:

2DqiOQfGRZjzddWpEZwGsJnoTsp9Yiri8DE9cPUMPsJ7lTFuE4XHi4QfN2cAipDB2G/G

9hr7Hj4u4xfMky7nPvJurClZejkI8eNp8iXLtrfS4DhR4yCFQjCiKk0dh83p+DDsFVV7

TI3Du2B15sQS+SdaoPwkfVDnJv4Y+b7vu2cN7bG7exCkBapBcJZbReNaWX5sf+U8ypfw

5V6QdMOzNXpef3z+cTTWfGOtmn9T1Pwo1Yi9ObyIf/wiK+IPb+bBZ9UwLZSB+qVMfJmX

GnHXO3AnA/PD+jKYCtsm2Gxv2WB3CuezOyzPtORuqLp5ubgnLBF9aBBjxwLdbn+cp5sm

lw51IHbmo1Jj7H6wyNnRpEjy4tM73jcosBfGeQDHxgyH1uaiFNr2D+WvmuYo7eun2dsy

Wve2O/FwicWHvkg5aDPsgOjzetsn1JCNZzbW

$$-CyberCash-End-kchfiZ5WAUlpk1/v1ogwuQ==-$$

#####################################################################

Скрытый ключ. Генерируется из ключа шифрования CyberCash, заданного в CyberKey

#####################################################################

Содержимое скрытой секции:

type: merchant-diagnostic-log

server-date: 19950121100505.nnn [optional]

message: incorrect order-id

x-type: original-message-type

x-transaction: original-transaction-number

x-opaque: [если невозможно дешифровать]

9/eFiJK5tLizsoeSmpW7uLS8/7iio7Wisfv38biio7uyufv3tfv35uH+7N3d9/exuKX3

5+z3vuu4oqO7srnsvvz8/venoqO0v7al/7iio7WisYy+iv7s3ff3p6KjtL+2pf/wi7nw

#####################################################################

Приложение продавца не ждет отклика на это сообщение. Дешифрованное исходное сообщение будет размещено в закрытой части, если только дешифрование произошло успешно. Если шифрование осуществить не удалось, будет послано не дешифрованное сообщение.



4.6.


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