首页 > 解决方案 > 使用 .each 循环访问 API 响应

问题描述

我希望能够在循环中解析 A​​PI 响应。

我在控制器方法中有这个:

@payout_batch= PayPal::SDK::REST::Payout.get('xxxxxxx')
logger.info "Got Payout Batch Status[#{@payout_batch.batch_header.payout_batch_id}]"


rescue ResourceNotFound => err
  logger.error "Payout Batch not Found"
end

我可以显示这样的结果:

<%= @payout_batch.batch_header.amount.value %>

但是如果可能的话,我希望能够在 .each 循环中循环所有内容。我尝试了几种方法,但似乎没有任何效果:

<% @payout_batch.batch_header.each  do |x| %>
    <%= (x["amount"]) %>
<% end %>

还有更多类似的方法。尝试使用以下方法定义响应:

 json = JSON.parse(@payout_batch)

并使用 json 循环,但这似乎也不起作用。

问题:如何通过循环在视图中产生响应?

标签: ruby-on-railsjsonrubypaypal-rest-sdk

解决方案


PayPal 和 Stripe 支付网关的响应总是以数组的形式。(目前,不知道其他网关,因为我已经在这两个方面工作过。)

你可以说他们必须维护一个共同的结构来处理单个记录或多个记录,这就是为什么在每个支付网关的大多数情况下它以数组的形式返回。

所以你必须这样做。

 <%= @payout_batch.items[0].batch_header %>

推荐阅读