一、核心配置
| 参数 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";
}
?>
三、关键说明与风险提示
- 调试建议 :
- 第一步:替换
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
}
]
}
}