首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >新加坡股票API 实时行情、K 线及指数数据

新加坡股票API 实时行情、K 线及指数数据

原创
作者头像
用户11960093
发布2026-05-06 23:03:42
发布2026-05-06 23:03:42
650
举报

一、核心配置

参数 Key

固定值

说明

countryId

36

你指定的国家 ID

key

你的密钥

必填,需联系 StockTV 获取

API 基础信息:

  • Base URL: https://api.stocktv.top
  • 格式: JSON

二、PHP 对接代码

代码语言:php
复制
<?php
// StockTV API 配置
define('STOCKTV_API_KEY', 'YOUR_API_KEY'); // 请替换为你的实际 Key
define('STOCKTV_BASE_URL', 'https://api.stocktv.top');

/**
 * 通用 API 请求函数(严格锁定 countryId=36)
 */
function stocktvApiRequest($endpoint, $params = []) {
    // 1. 强制使用 countryId=36
    $defaultParams = [
        'key' => STOCKTV_API_KEY,
        'countryId' => 36, // 按你要求固定为 36
    ];
    $queryParams = array_merge($defaultParams, $params);
    $url = STOCKTV_BASE_URL . $endpoint . '?' . http_build_query($queryParams);

    // 2. 发起请求
    $ch = curl_init();
    curl_setopt_array($ch, [
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_TIMEOUT => 10,
    ]);
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    // 3. 解析响应
    if ($httpCode === 200) {
        $data = json_decode($response, true);
        if (isset($data['code']) && $data['code'] == 200) {
            return $data;
        }
        return ['error' => 'API Error: ' . ($data['message'] ?? 'Unknown error')];
    }
    return ['error' => 'HTTP Error: ' . $httpCode];
}

/**
 * 1. 获取股票列表(countryId=36)
 */
function getStockList($page = 1, $pageSize = 20) {
    $endpoint = '/stock/stocks';
    $params = [
        'page' => $page,
        'pageSize' => $pageSize,
    ];
    return stocktvApiRequest($endpoint, $params);
}

/**
 * 2. 查询个股实时行情
 * @param int|string $identifier 股票的 PID(推荐)或代码
 */
function getStockQuote($identifier) {
    $endpoint = '/stock/queryStocks';
    $params = [];
    if (is_numeric($identifier)) {
        $params['id'] = $identifier;
    } else {
        $params['symbol'] = $identifier;
    }
    return stocktvApiRequest($endpoint, $params);
}

/**
 * 3. 获取指数数据(countryId=36)
 */
function getIndices() {
    $endpoint = '/stock/indices';
    return stocktvApiRequest($endpoint);
}

/**
 * 4. 获取历史 K 线数据
 * @param int $pid 股票 PID(必须)
 * @param string $interval 周期: PT1M, PT5M, PT1H, P1D 等
 */
function getKline($pid, $interval = 'P1D') {
    $endpoint = '/stock/kline';
    $params = [
        'pid' => $pid,
        'interval' => $interval,
    ];
    return stocktvApiRequest($endpoint, $params);
}

// ==================== 使用示例 ====================

// 示例1:获取股票列表
$result = getStockList(1, 5);
if (!isset($result['error'])) {
    $stocks = $result['data']['records'] ?? [];
    foreach ($stocks as $stock) {
        echo "代码: {$stock['symbol']}, 名称: {$stock['name']}, 最新价: {$stock['last']}\n";
    }
} else {
    echo $result['error'];
}

// 示例2:查询指定股票(先用 PID 或 Symbol)
$quote = getStockQuote('EXAMPLE'); // 替换为实际代码
if (!isset($quote['error'])) {
    $stockData = $quote['data'] ?? [];
    echo "股票: {$stockData['last']}, 涨跌幅: {$stockData['chgPct']}%\n";
}
?>

三、关键说明与风险提示

  1. 调试建议
    • 第一步:替换 YOUR_API_KEY 为真实值。
    • 第二步:先运行 getStockList(1, 5) 测试。如果返回空,请直接联系 StockTV 官方确认 countryId=36 在你账户下的有效性和对应市场。

四、接口返回结构(参考)

成功响应格式(code=200):

代码语言:json
复制
{
  "code": 200,
  "data": {
    "records": [
      {
        "id": 12345,
        "symbol": "STOCK1",
        "name": "Example Stock",
        "last": 100.50,
        "chgPct": 1.5,
        "volume": 1000000,
        "exchangeId": 1
      }
    ]
  }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、核心配置
  • 二、PHP 对接代码
  • 三、关键说明与风险提示
  • 四、接口返回结构(参考)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档