0

我正在尝试使用Ruby Net Http在我的rails应用程序中验证服务器端的支付,当我在邮递员中调用他们的API时它工作正常:

图 1

然后我从以下屏幕获取邮递员生成的代码,将其包含在我的 Rails 应用程序中

图 2

这是行不通的。我尝试在控制台中运行它并收到此错误:

图 3

4

1 回答 1

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)

希望这可以帮助。

于 2018-11-01T14:22:44.490 回答