Генерация ключей и сертификата (*.crt)
Это руководство было разработано для администраторов интернет-магазинов и веб-программистов, чтобы упростить процедуру подключения к платежному шлюзу и решить ряд проблем, возникающих при работе с цифровой подписью сообщений. Помимо этого руководства, этот архив содержит пакетные файлы; Процедура обработки пакетных файлов описана ниже.
Установка 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, чтобы проверить подпись.