用PHP对接马来西亚股票数据API开发指南
用PHP对接马来西亚股票数据API开发指南
本文介绍如何使用PHP对接StockTV提供的全球股票数据API,重点演示获取马来西亚股票市场数据的实现方法。
一、准备工作
-
申请API密钥
联系paopao--Key -
接口基础信息
$base_url = "https://api.stocktv.top";
$api_key = "YOUR_API_KEY"; // 替换为实际Key
二、核心接口实现
- 获取马来西亚股票列表
function getMalaysiaStocks($page = 1, $pageSize = 10) {
global $base_url, $api_key;
$url = "$base_url/stock/stocks?countryId=42&page=$page&pageSize=$pageSize&key=$api_key";
$response = file_get_contents($url);
$data = json_decode($response, true);
if($data['code'] == 200) {
return $data['data']['records'];
}
throw new Exception("获取数据失败: ".$data['message']);
}
// 使用示例
try {
$stocks = getMalaysiaStocks();
foreach($stocks as $stock) {
echo "股票代码: {$stock['symbol']} 名称: {$stock['name']} 最新价: {$stock['last']}\n";
}
} catch(Exception $e) {
echo "错误: ".$e->getMessage();
}
- 查询个股详情
function getStockDetail($pid) {
global $base_url, $api_key;
$url = "$base_url/stock/queryStocks?id=$pid&key=$api_key";
$response = file_get_contents($url);
return json_decode($response, true)['data'][0];
}
// 示例:查询ID为41602的股票
$detail = getStockDetail(41602);
echo "公司名称: {$detail['name']}\n52周最高: {$detail['high']}\n成交量: {$detail['volume']}";
- 获取K线数据
function getKlineData($pid, $interval = 'PT15M') {
global $base_url, $api_key;
$url = "$base_url/stock/kline?pid=$pid&interval=$interval&key=$api_key";
$response = file_get_contents($url);
$data = json_decode($response, true);
if($data['code'] == 200) {
return $data['data'];
}
return [];
}
// 使用示例
$kline = getKlineData(7310, 'PT1H');
foreach($kline as $candle) {
echo date('Y-m-d H:i', $candle['time']/1000)." 开盘:{$candle['open']} 收盘:{$candle['close']}\n";
}
- WebSocket实时数据
// 需要安装Ratchet库:composer require cboden/ratchet
use Ratchet\Client\WebSocket;
use React\EventLoop\Factory;
function connectWebsocket() {
global $api_key;
$loop = Factory::create();
$connector = new \Ratchet\Client\Connector($loop);
$connector("wss://ws-api.stocktv.top/connect?key=$api_key")
->then(function(WebSocket $conn) {
$conn->on('message', function($msg) use ($conn) {
$data = json_decode($msg);
echo "实时价格更新 [{$data->symbol}]: {$data->last_numeric}\n";
});
// 心跳维持
$loop = Factory::create();
$loop->addPeriodicTimer(30, function() use ($conn) {
$conn->send('ping');
});
}, function(\Exception $e) {
echo "连接失败: {$e->getMessage()}\n";
});
$loop->run();
}
// 启动监听
connectWebsocket();
三、注意事项
1.错误处理
所有API返回格式:
{
"code": 200,
"message": "操作成功",
"data": {}
}
2.需检查code字段处理异常
3.时区处理
所有时间戳为UTC+0时区,需根据业务需求转换
4.数据缓存
建议缓存高频数据(如K线),避免频繁调用
通过以上接口可实现马来西亚股票市场的行情展示、数据分析、实时监控等功能的开发。建议先从基础行情接口入手,逐步增加实时推送等高级功能。

浙公网安备 33010602011771号