Как получить таблицу рекордов из хэша транзакции Square? - PullRequest
0 голосов
/ 11 апреля 2019

Мне нужно перебрать этот хэш транзакций Square и присоединить каждую запись к результатам запроса MySQL.Есть ли способ получить записи в хэше транзакций Square в массив, который больше похож на таблицу?

Я отправил похожий вопрос несколько недель назад ( Как разобрать значения вложенного ключа в отклике Squareв Ruby 2.2.10 ), где хэш имел только одну запись, но теперь мне нужно перебрать все транзакции.Обратите внимание, что хеш также может содержать транзакции возврата, которые я хотел бы проанализировать отдельно.И в некоторых транзакциях будет отсутствовать поле reference_id.

{:transactions=>[
{:id=>"sacfx8eqLYsBQom7G9kV7gS1K4lbnMG83w3U0Gpzu1cCJROfZvRJqLhO", 
:location_id=>"CBASEJJZMYbNZW8F1bbRjRuPQ7Q", 
:created_at=>"2019-04-10T16:38:57Z", 
:tenders=>[{
    :id=>"eeb92f2a-379b-55c6-439b-f0f5c44925c8", 
    :location_id=>"CBASEJJZMYbNZW8F1bbRjRuPQ7Q", 
    :transaction_id=>"sacfx8eqLYsBQom7G9kV7gS1K4lbnMG83w3U0Gpzu1cCJROfZvRJqLhO", 
    :created_at=>"2019-04-10T16:38:57Z", 
    :note=>"Online Transaction", 
    :amount_money=>{:amount=>65000, :currency=>"USD"}, 
    :processing_fee_money=>{:amount=>1915, :currency=>"USD"}, 
    :type=>"CARD", 
    :card_details=>{:status=>"CAPTURED", 
                    :card=>{:card_brand=>"VISA", 
                            :last_4=>"1111", 
                            :fingerprint=>"50b16672bf4472e9058524e3c0a060faab196bc3e43f9c693a870c7e8b6da626"
                            }, 
                    :entry_method=>"KEYED"
                    }
}], 
:reference_id=>"796", 
:product=>"EXTERNAL_API"
}, 

{:id=>"mvMhdOrfBdXQvE0S6EPFoeHf7Fm8duSJgsk4bZyt6APQTa2PGkix6LhO", 
:location_id=>"CBASEJJZMYbNZW8F1bbRjRuPQ7Q", 
:created_at=>"2019-04-10T01:22:16Z", 
:tenders=>[{
    :id=>"693c42d4-5e16-52a3-5594-5e8dd4ff9f95", 
    :location_id=>"CBASEJJZMYbNZW8F1bbRjRuPQ7Q", 
    :transaction_id=>"mvMhdOrfBdXQvE0S6EPFoeHf7Fm8duSJgsk4bZyt6APQTa2PGkix6LhO", 
    :created_at=>"2019-04-10T01:22:16Z", 
    :note=>"Online Transaction", 
    :amount_money=>{:amount=>65000, :currency=>"USD"}, 
    :processing_fee_money=>{:amount=>1915, :currency=>"USD"}, 
    :type=>"CARD", 
    :card_details=>{:status=>"CAPTURED", 
                    :card=>{:card_brand=>"VISA", 
                        :last_4=>"1111", 
                        :fingerprint=>"50b16672bf4472e9058524e3c0a060faab196bc3e43f9c693a870c7e8b6da626"
                        }, 
                    :entry_method=>"KEYED"
                    }
}], 
:product=>"EXTERNAL_API"
},
...
],
:refunds=>[... refunds here ...]
}

Я вставил возврат каретки, чтобы было легче увидеть ключ / значения.
Кроме того, образец Square в их документации (https://docs.connect.squareup.com/api/connect/v2/?q=reference_id#endpoint-transactions-listtransactions) показывает ключи в кавычках, но фактический ответ, который приходит к Ruby, такой же, как я показал выше, где все ключи - это просто имя ключа двоеточия - как: id

...