Module: TinkoffClient::Payment::EncryptCardData
- Included in:
- TinkoffClient::Payment
- Defined in:
- lib/tinkoff_client/payment/encrypt_card_data.rb
Instance Method Summary collapse
-
#encrypt_data(keys) ⇒ Object
Метод реализует шифрование данных карты.
Instance Method Details
#encrypt_data(keys) ⇒ Object
Метод реализует шифрование данных карты
Используется в методе FinishAuthorize www.tinkoff.ru/kassa/develop/api/payments/finishAuthorize-request/
Объект CardData собирается в виде списка «ключ=значение» (разделитель «;»), зашифровывается открытым ключом (X509 RSA 2048), получившееся бинарное значение кодируется в Base64. Открытый ключ генерируется Банком и выдается при регистрации терминала.
Все поля обязательны.
22 23 24 25 26 27 |
# File 'lib/tinkoff_client/payment/encrypt_card_data.rb', line 22 def encrypt_data(keys) card = keys[:Card] concatenated = card.map { |k, v| [k, v].join("=") }.join(";") public_key = OpenSSL::PKey::RSA.new File.read(TinkoffClient.configuration.payment_public_key) card_data = Base64.encode64(public_key.public_encrypt(concatenated)) end |