如何将PayPal的PDT响应转换为哈希?

时间:2017-07-21 07:10:20

标签: ruby-on-rails ruby paypal

我正在尝试使用PayPal上的PDT系统来管理我网站上的付款。我的网站正确接收交易ID,该交易ID被发送回paypal以便接收交易数据。

这是我用来将交易ID发布到paypal并收到回复的代码。

response = Net::HTTP.post_form(URI.parse("#{Rails.application.secrets.paypal_host}/cgi-bin/webscr?"), values)
    puts response.body

我收到正确的回复,其中response.body在终端显示。

SUCCESS
transaction_subject=SPORTS+PACKAGE+%281+Week%29
payment_date=23%3A32%3A01+Jul+20%2C+2017+PDT
txn_type=subscr_payment
subscr_id=I-WHFVMBY57NX2
last_name=Lucas
residence_country=US
item_name=SPORTS+PACKAGE+%281+Week%29
payment_gross=
mc_currency=AUD
business=merchant-success%40puntsquad.com
payment_type=instant
protection_eligibility=Ineligible
payer_status=verified
payer_email=buyer-success%40puntsquad.com
txn_id=8M5887849L359363Y
receiver_email=merchant-success%40puntsquad.com
first_name=George
payer_id=667TSNBH7R7X4
receiver_id=WJYE8WGSREP98
payment_status=Completed
payment_fee=
mc_fee=2.00
mc_gross=50.00
charset=windows-1252

我的问题是我不确定我如何能够访问这些值。

1 个答案:

答案 0 :(得分:0)

您可以将响应正文转换为哈希,如下所示

hsh = CGI::parse(response.body)
puts hsh['transaction_subject']