php - 无法获取 coingecko API 的信息
问题描述
我正在分叉这个回购https://github.com/FundacionPesetacoin/Pesetacoin_WooCommerce-Plugin并且工作正常。但是当更改 API 以获取其他站点中的价格时,不更新
我尝试了一些不同的 API 链接并制作相同的链接。原始代码获取他的私有 API 的信息,我想使用其他公共 API。
使用原始代码,API 显示以下信息:
{"status" : "success" , "message" : "null", "ptc_btc" : "0.00000083", "btc_usd" : "5070.29", "btc_eur" : "4505.46", "supply" : "138188628.56442260", "ptc_eur" : "0.00373953", "ptc_usd" : "0.00420834" , "date" : "2019-04-13 10:20:07"}
并获取“ptc_eur”的 API 用于购物车中的节目。现在我想使用其他站点https://api.coingecko.com/api/v3/simple/price?ids=reecore&vs_currencies=eur的新 API,而不是显示以下信息:
{"reecore":{"eur":0.0046564}}
我只想使用“eur”数据,原始代码使用“ptc_eur”但不起作用。对不起我的英语不好。
原始代码:
//precio en PesetaCoins
global $woocommerce;
$euros= $woocommerce->cart->total;
$xaxa= "http://nodos.pesetacoin.info/api/api.php";
$data = file_get_contents($xaxa);
$pesetas = json_decode($data, true);
$valor_ptc= $pesetas['ptc_eur'];
$ptc= $euros/$valor_ptc;
$ptc= round($ptc, 2);
//precio en PesetaCoins
$pagos= array();
$metodo= $order->get_payment_method();
$i = -1;
foreach ( $this->account_details as $account ) {
$i++;
$pagos[$i]=
$pagos[$i]= esc_attr( wp_unslash( $account['hash_name'] ) );
}
$cont= rand(0, $i);
if($metodo == "ptc") {
$description= "<span style='font-size:14px'>Para completar el pedido, debe enviar la cantidad <b>".$ptc."</b> de Pesetacoin a la siguiente dirección: <b>";
$description.= $pagos[$cont];
$description.="</b><br>Una vez se reciba la transacción se enviará el pedido.</span>";
echo wpautop(wptexturize($description));
}
}
新代码:
//precio en ReecoreCoins
global $woocommerce;
$euros= $woocommerce->cart->total;
$xaxa= "https://api.coingecko.com/api/v3/simple/price?ids=reecore&vs_currencies=eur";
$data = file_get_contents($xaxa);
$pesetas = json_decode($data, true);
$valor_reex= $pesetas['eur'];
$reex= $euros/$valor_reex;
$reex= round($reex, 2);
//precio en ReecoreCoins
$pagos= array();
$metodo= $order->get_payment_method();
$i = -1;
foreach ( $this->account_details as $account ) {
$i++;
$pagos[$i]=
$pagos[$i]= esc_attr( wp_unslash( $account['hash_name'] ) );
}
$cont= rand(0, $i);
if($metodo == "reex") {
$description= "<span style='font-size:14px'>Para completar el pedido, debe enviar la cantidad <b>".$reex."</b> de Reecorecoin a la siguiente dirección: <b>";
$description.= $pagos[$cont];
$description.="</b><br>Una vez se reciba la transacción se enviará el pedido.</span>";
echo wpautop(wptexturize($description));
}
}
解决方案
这是因为现在的 Coingecko API 返回一个嵌套的 JSON,它只是一个 JSON 文件,其中相当大一部分值是其他 JSON 对象。
与Simple JSON 相比,嵌套JSON 提供了更高的清晰度,因为它将对象解耦到不同的层,使其更易于维护。
使用 Phrase,键将通过用点分隔级别来存储。
推荐阅读
- vuejs2 - 渲染错误:“TypeError:无法读取未定义的属性‘fieldName’”
- elasticsearch - 尝试索引文档会出错:“序列化设置中只允许值列表”
- regex - 用python打开json文件时换行符
- android - 有没有办法在 Android 中使用 Proguard 来掩盖活动?
- java - 可以使用 X509EncodedKeySpec 在 java 中加载公钥,但无法使用 openssl 解析它
- visual-studio - 在团队服务的冲刺期间获得工作时间
- vb.net - IDbDataParameter - 定义 Oracle Clob
- angular - Angular 4为同一组件创建不同的语言路径路径
- javascript - 转换的钩子一旦被销毁并回调就会产生问题
- java - 迭代时抛出 IOException