我想在页面上显示来自api调用的一些数据。该数据用于比特币支付。所以我有订单,如果客户用比特币付款,我想看到确认,金额等。
Here is one example url返回json数据。
以下是我在控制器中尝试的内容
public function ordersView($orderId) {
/** @var Order $order */
$order = Order::where('order_id', $orderId)->first();
if (!$order) {
App::abort(404);
}
$url="http://btc.blockr.io/api/v1/tx/info/9585d5f635eddf737c8351bfe0879c3dbef3d94de9feda2bd74c990b06b7dc52";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
curl_close($ch);
$total = file_get_contents($url);
return View::make('site.admin.orders_view', [
'order' => $order,
'total' => $total
]);
}
然后在视图上
@foreach($order->getOrderData($order->data) as $itemId => $item)
// some product info like name, description etc..
@foreach($total as $i => $totals)
{{ $totals['confirmations'] }}
{{ $totals['time_utc'] }}
@endforeach
@endforeach
我得到的当前错误是
'Invalid argument supplied for foreach()
关于内在的foreach
@foreach($total as $i => $totals)
{{ $totals['confirmations'] }}
{{ $totals['time_utc'] }}
@endforeach
有人可以帮助我解析这些数据到底是什么吗?
答案 0 :(得分:1)
你需要在数组格式中转换你的响应,因为你的响应是json
所以尝试使用json_decode()
函数将json转换为数组...
$url="http://btc.blockr.io/api/v1/tx/info/9585d5f635eddf737c8351bfe0879c3dbef3d94de9feda2bd74c990b06b7dc52";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
curl_close($ch);
$total =json_decode( file_get_contents($url),true);
你的回答是......
Array
(
[status] => success
[data] => Array
(
[tx] => 9585d5f635eddf737c8351bfe0879c3dbef3d94de9feda2bd74c990b06b7dc52
[block] => 429605
[confirmations] => 468
[time_utc] => 2016-09-13T12:59:24Z
[is_coinbased] => 0
[trade] => Array
(
[vins] => Array
(
[0] => Array
(
[address] => 19c9JnCoyRqUkUjJkbdK9qDApk2a5Vy558
[is_nonstandard] =>
[amount] => -0.103855
[n] => 0
[type] => 0
[vout_tx] => ebe35a1aee39c17668a26a6d91d49e83651ee1c5fe28f23130202e617054e545
)
)
[vouts] => Array
(
[0] => Array
(
[address] => 1DsRkxNy8LAAbi6kEh6ZoeZGjAVBuia4uw
[is_nonstandard] =>
[amount] => 0.00295729
[n] => 0
[type] => 1
[is_spent] => 1
)
[1] => Array
(
[address] => 1NusFWAG3mgkLszWo5oH13FLbwVaJZ6aRL
[is_nonstandard] =>
[amount] => 0.10069771
[n] => 1
[type] => 1
[is_spent] => 0
)
)
)
[vins] => Array
(
[0] => Array
(
[address] => 19c9JnCoyRqUkUjJkbdK9qDApk2a5Vy558
[is_nonstandard] =>
[amount] => -0.10385500
[n] => 0
[type] => 0
[vout_tx] => ebe35a1aee39c17668a26a6d91d49e83651ee1c5fe28f23130202e617054e545
)
)
[vouts] => Array
(
[0] => Array
(
[address] => 1DsRkxNy8LAAbi6kEh6ZoeZGjAVBuia4uw
[is_nonstandard] =>
[amount] => 0.00295729
[n] => 0
[type] => 1
[is_spent] => 1
[extras] => Array
(
[asm] => OP_DUP OP_HASH160 8d2af96bbb1c0464c8129db247458769b6767a10 OP_EQUALVERIFY OP_CHECKSIG
[script] => 76a9148d2af96bbb1c0464c8129db247458769b6767a1088ac
[reqSigs] => 1
[type] => pubkeyhash
)
)
[1] => Array
(
[address] => 1NusFWAG3mgkLszWo5oH13FLbwVaJZ6aRL
[is_nonstandard] =>
[amount] => 0.10069771
[n] => 1
[type] => 1
[is_spent] => 0
[extras] => Array
(
[asm] => OP_DUP OP_HASH160 f05a37d55fa0512b32320cf362bb96f94d886259 OP_EQUALVERIFY OP_CHECKSIG
[script] => 76a914f05a37d55fa0512b32320cf362bb96f94d88625988ac
[reqSigs] => 1
[type] => pubkeyhash
)
)
)
[fee] => 0.00020000
[days_destroyed] => 0.05
[is_unconfirmed] =>
[extras] =>
)
[code] => 200
[message] =>
)