feat: 添加阿里云短信服务支持并优化验证码逻辑

- 引入 alibabacloud/dysmsapi-20170525 依赖,集成阿里云短信服务
- 将短信验证码从6位改为4位,优化用户体验
- 添加聚水潭商品按时间范围同步功能,支持分页拉取
- 增强Cron任务异常处理,添加错误日志记录
- 修复系统附件服务中图片路径处理逻辑
- 更新阿里云SDK相关组件至最新版本
- 添加think-trace调试扩展,便于问题排查
- 优化跨域中间件,使用str_contains替代strpos
This commit is contained in:
2026-04-30 15:19:40 +08:00
parent 0334fef6c1
commit c7f85ffbda
565 changed files with 59742 additions and 3391 deletions

85
test_haichao_json.php Normal file
View File

@@ -0,0 +1,85 @@
#!/usr/bin/env php
<?php
namespace think;
require __DIR__ . '/vendor/autoload.php';
$spu = $argv[1] ?? '';
echo "========================================\n";
echo "聚水潭商品拉取接口测试\n";
echo "========================================\n\n";
$app = new App();
$app->initialize();
echo "✅ 应用初始化成功!\n\n";
try {
$haichaoJst = \app\haichao\HaichaoJstServices::getServices();
if (empty($spu)) {
echo "测试 getProductListStand 方法...\n\n";
$result = $haichaoJst->getProductListStand();
echo "✅ API调用成功!\n\n";
echo "返回数据类型: " . gettype($result) . "\n";
if (is_array($result)) {
echo "顶层键值:\n";
foreach (array_keys($result) as $key) {
echo " - {$key}\n";
}
if (isset($result['datas']) && is_array($result['datas'])) {
echo "\n📦 datas数组包含 " . count($result['datas']) . " 个元素\n\n";
if (!empty($result['datas'])) {
echo "第一个元素:\n";
print_r($result['datas'][0]);
} else {
echo "⚠️ datas数组为空\n";
}
} else if (isset($result[0])) {
echo "\n📦 第一个元素:\n";
print_r($result[0]);
} else {
echo "\n完整返回:\n";
print_r($result);
}
} else {
echo "\n完整返回:\n";
print_r($result);
}
echo "\n\n";
echo "完整JSON:\n";
echo json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
echo "\n";
} else {
echo "测试 getProductListKuan 方法...\n\n";
echo "SPU: " . $spu . "\n\n";
$result = $haichaoJst->getProductListKuan($spu);
echo "✅ API调用成功!\n\n";
echo "完整JSON:\n";
echo json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
echo "\n";
}
echo "\n========================================\n";
echo "测试完成\n";
echo "========================================\n";
} catch (\Throwable $e) {
echo "\n❌ 发生错误!\n";
echo "错误信息: " . $e->getMessage() . "\n";
echo "错误文件: " . $e->getFile() . ":" . $e->getLine() . "\n";
echo "\n堆栈跟踪:\n" . $e->getTraceAsString() . "\n";
exit(1);
}