coingecko获取token price --php版

1.创建一个数据表

DROP TABLE IF EXISTS `txzh_token_price`;
CREATE TABLE `txzh_token_price`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `token_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '币种id',
  `symbol` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '币种符号',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '币种名称',
  `price` decimal(18, 6) NULL DEFAULT NULL COMMENT '币种价格',
  `vs_currencies` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '换算币种',
  `update_time` int(10) NULL DEFAULT NULL COMMENT '更新时间',
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态:0=不更新 1=更新',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Compact;

2.php代码如下

<?php

namespace app\im\controller;

use GuzzleHttp\Client;
use app\im\model\mysql\User;
use app\im\model\mysql\TokenPrice;

class Task
{
    /**
     * 获取代币价格
     * @return string 
     */
    public function getTokenPrice()
    {
        // 需要的币种列表
        $tokenList = TokenPrice::where(array("status"=>1))->select();
        // 获取币种列表 $url2 = "https://api.coingecko.com//api/v3/coins/list"; 
        $ids = '';
        foreach ($tokenList as $tokenInfo) {
            $ids .= $tokenInfo['token_ids'].",";
        }
    
        $client = new Client();
       
        $url = "https://api.coingecko.com/api/v3/simple/price?ids=".$ids."&vs_currencies=".$tokenInfo['vs_currencies'];
        
        $res = $client->request('GET', $url);
        
        if ($res->getStatusCode() != 200) {
            return false;
        }
        $resultData = $res->getBody();
        $resultDataArray = json_decode($resultData,true);
        
        foreach ($tokenList as $tokenInfo) {
            $price = $resultDataArray[$tokenInfo['token_ids']][$tokenInfo['vs_currencies']];
            $data = [];
            $data['price'] = $price;
            $data['update_time'] = time();
            TokenPrice::where(array("id"=>$tokenInfo['id']))->update($data);
        }
        
        return 'success';
    }
}

相关推荐

  1. coingecko获取token price --php

    2024-03-13 23:00:06       22 阅读
  2. php 获取网页数据

    2024-03-13 23:00:06       10 阅读
  3. 如何获取 macOS

    2024-03-13 23:00:06       51 阅读
  4. php获取文件列表(所有子目录文件)

    2024-03-13 23:00:06       17 阅读
  5. php获取1688商品详情api接口

    2024-03-13 23:00:06       18 阅读
  6. php获取1688拍立淘api

    2024-03-13 23:00:06       14 阅读
  7. php根据用户地址获取经纬度

    2024-03-13 23:00:06       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-13 23:00:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-13 23:00:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-13 23:00:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-13 23:00:06       18 阅读

热门阅读

  1. GRU-深度学习循环神经网络情感分类模型搭建

    2024-03-13 23:00:06       24 阅读
  2. APK漏洞扫描工具

    2024-03-13 23:00:06       20 阅读
  3. 流量池增长(6)

    2024-03-13 23:00:06       18 阅读
  4. Everything:文件查找工具,一搜即得

    2024-03-13 23:00:06       17 阅读
  5. 三维数组指针定义和初始化例子

    2024-03-13 23:00:06       22 阅读
  6. C#写入和调用方法

    2024-03-13 23:00:06       22 阅读
  7. c语言之函数声明

    2024-03-13 23:00:06       24 阅读
  8. 题目 3150: 冶炼金属

    2024-03-13 23:00:06       21 阅读
  9. SQL 中 IN 与 <= 且 >= 的效率比较

    2024-03-13 23:00:06       23 阅读
  10. 职业规划随笔

    2024-03-13 23:00:06       18 阅读