Аутентификация payfort с использованием http-кода ruby ​​net, предоставленного почтальоном

Я пытаюсь аутентифицировать плату на стороне сервера в своем приложении rails, используя Ruby Net Http, когда я вызываю их API в почтальоне, он отлично работает:

изображение 1

Затем я беру код, сгенерированный почтальоном, со следующего экрана, чтобы включить его в свое приложение rails.

изображение 2

Это не работает. Я пытаюсь запустить его в консоли и получаю эту ошибку:

изображение 3


person Tahir Pasha    schedule 01.11.2018    source источник


Ответы (1)


Я вижу, что ваш URL-адрес использует HTTPS, и почтальон не добавил следующие две строки в сгенерированный код:

http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

Таким образом, ваш полный код должен выглядеть так:

device_id = ‘your device id’
signature = ‘sha signature’
url = URI('https://paymentservices.payfort.com/FortAPI/paymentApi')
req = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json')
req.body = '{"access_code”:”asdasdasdsa”,”device_id":"'+device_id+'","language":"en","merchant_identifier”:”dsadasdasd”,”service_command":"SDK_TOKEN","signature":"'+signature+'"}'
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
res = http.request(req)
response =  JSON.parse(res.body)

Надеюсь это поможет.

person Jawad Sadiq    schedule 01.11.2018
comment
Большой. Рад помочь! - person Jawad Sadiq; 01.11.2018