Ви знаходитеся тут: Головна / Генерация ключей

Генерация ключей и сертификата (*.crt)

створив(ла) Igor Uleschenko Востаннє змінено: Лют 03, 2020 09:35

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

Установка OpenSSL

Перед началом работы Win32 OpenSSL необходимо загрузить с https://www.openssl.org/source/. После установки путь к папке bin должен быть зарегистрирован в переменной «Path» (например, path = C: \ OpenSSL \ bin)

Генерация ключей

Генерация и обмен ключами осуществляется после подачи запроса на регистрацию и определения атрибутов eMerchant, в частности, MerchantID.

Перед генерацией ключа файл config.dat необходимо отредактировать в соответствии с данными подключенного продавца. Данные Config.dat не обязательно должны строго соответствовать данным запроса соединения, данные не используются для генерации или проверки подписи и служат только для идентификации файлового сертификата.

#Страна
CN=UA
#Область
ST=Kievskaya
#Город
L=Kiev
#Название организации
O=UPC
#Название отделения
OU=IT DEP
#Имя для сертификата (Ваше имя)
CN=SERG
#Email организации
emailAddress=ec@upc.ua

Заменив данные в config.dat на присвоенные торговой системе рабочие, можно приступая к генерации рабочих файлов - сертификата (*.crt), приватного(*.pem) и публичного(*.pub) ключей в программе Win32 OpenSSL прописываем команду run.bat с присвоенным торговой системе параметром MerchantID (например, run.bat 1770000):

Запускаем команду, после чего генерируется три файла.

1770000.pem - закрытый ключ
1770000.pub - открытый ключ
1770000.crt - сертификат

После генерации файлов, полученный сертификат (*.crt) администратор торговой системы обязательно должен отправить(внутри архива) в технический отдел UPC (ec@upc.ua), для проверки платёжным шлюзом аутентичности сообщения, а ключи оставить на стороне торговой системы и использовать для генерации подписи.

Боевая среда:

После успешного выполнения выше указанных инструкций, можно провести тестовую транзакцию на небольшую сумму с использованием реальной карты(сумма всегда указывается в копейках 1 гривна=100). Для этого необходимо изменить настройки системы оплаты сайта торговой системы:

•    Заменить ранее полученный тестовый MerchantID на рабочий;
•    Заменить ранее полученный тестовый TerminalID на рабочий;
•    Изменить адрес шлюза с тестового на рабочий: https://secure.upc.ua/go/pay

Генерация подписи

Подпись генерируется на основе двух файлов: * .pem и файла данных. Файл данных содержит данные (поля), для которых генерируется подпись.

Обратите внимание, что последовательность полей должна быть сохранена, в противном случае запрос будет отклонен с кодом 405 (Подпись недействительна).

Поля записываются в файл данных в следующей последовательности (эта последовательность также должна сохраняться для реализации программного обеспечения):

MerchantId; TerminalId; PurchaseTime; OrderId, Delay, CurrencyId, AltCurrencyId, сумма, AltAmount; SessionData (SD);

Номер ; знаки должны оставаться прежними. Если поле отсутствует, ;; должен быть использован. Например, поле SessionData (SD) отсутствует, поэтому файл данных будет выглядеть следующим образом:

MerchantId; TerminalId; PurchaseTime; OrderId, Delay, CurrencyId, AltCurrencyId; Сумма, AltAmount ;;

Если поля Delay, AltCurrency или AltAmount отсутствуют, перед этими полями запятая не указывается. Например:

MerchantId; TerminalId; PurchaseTime; OrderId; CurrencyId, AltCurrencyId; Сумма, AltAmount ;;

MerchantId; TerminalId; PurchaseTime; OrderId, Delay, CurrencyId; Количество ;;

MerchantId; TerminalId; PurchaseTime; OrderId; CurrencyId; Количество ;;

Для правильной генерации подписи файл данных не должен содержать никаких дополнительных символов (пробелы, возвраты, разрывы строк). Файл данных должен быть проверен на наличие ненужных символов в редакторе HEX или FAR (F3, F4).

Данные должны быть расположены таким же образом в случае программной обработки подписи.

Для создания подписи, create_signature.bat должен быть запущен со значением * .pem, например, create_signature.bat 1770000.pem. В результате будут обновлены или созданы два файла: signature.bin (подпись) и подпись (подпись в кодировке base64). Данные файла подписи отправляются в запросе в виде подписи. (Примечание: в запросе нельзя вводить имя поля в нижнем регистре, т. Е. Поле с именем «merchantid» не будет зарегистрировано как одно.

Проверка подписи

Поля должны быть введены в файл from_gateway для проверки подписи данных шлюза в следующем порядке:
MerchantId; TerminalId; PurchaseTime; OrderId, Delay, Xid; CurrencyId, AltCurrencyId, сумма, AltAmount; SessionData; TranCode; ApprovalCode;

Все требования из предыдущего пункта также обязательны для генерации from_gateway.
Подпись данных шлюза должна быть помещена в файл подписи для проверки.
Обратите внимание, что количество значащих символов в одной строке файла подписи не должно превышать 64 (длина строки).

Запустите check_signature.bat, чтобы проверить подпись.