0

コントローラーの更新アクション内で REST 要求を使用する必要があります。これは、Amazon ペイメント マーケットプレイス API です。以下はその例です。コントローラー内でこれを呼び出して応答を処理するにはどうすればよいですか? 以下、回答も。どんな助けでも大歓迎です。

Sample REST Request

https://fps.sandbox.amazonaws.com?
Action=Settle
&AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE
&ReserveTransactionId=14GKD9GE66FAA63E6O6B2JDPZKN53LZ7F22
&SignatureMethod=HmacSHA256
&SignatureVersion=2
&Signature=SJJLsIBghi7VIycBjX7c3hnfgZ%2FBvZbzqLtAZXDL8ys%3D
&Timestamp=2009-10-06T07%3A53%3A11.750Z
&TransactionAmount.CurrencyCode=USD
&TransactionAmount.Value=1
&Version=2008-09-17

REST リクエストへのサンプル レスポンス

<SettleResponse xmlns="http://fps.amazonaws.com/doc/2008-09-17/">
  <SettleResult>
    <TransactionId>14GKD9GE66FAA63E6O6B2JDPZKN53LZ7F22</TransactionId>
    <TransactionStatus>Pending</TransactionStatus>
  </SettleResult>
  <ResponseMetadata>
    <RequestId>9ed2008b-b230-4ed0-9210-095f77fc2359:0</RequestId>
  </ResponseMetadata>
</SettleResponse>
4

1 に答える 1

0

Net::HTTPこれは、ruby にバンドルされている で直接行うことができます。

require "net/http"
require "open-uri"

uri = URI.parse("http://www.google.com")
response = Net::HTTP.get_response(uri)
=> #<Net::HTTPOK 200 OK readbody=true>

次に、応答の本文を取得します。

body = response.body
#=> "<!doctype html><html itemscope=\"itemscope\" ...

より高度なことをしたい場合は、HTTPartyfaradayなどのHTTP クライアント gemを使用することをお勧めします。aawsを使用した例を含むHTTParty を使用した例がたくさんあります。

重労働がレスポンスの解析側にのみある場合は、そのためにnokogiriを使用できます。

require 'nokogiri'

doc = Nokogiri::HTTP(body)
doc.search('h1').text
#=> "Google"
于 2012-09-21T01:44:58.197 に答える