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

83
test_jst_final_demo.php Normal file
View File

@@ -0,0 +1,83 @@
#!/usr/bin/env php
<?php
namespace think;
require __DIR__ . '/vendor/autoload.php';
echo "========================================\n";
echo "聚水潭商品拉取完整测试\n";
echo "========================================\n\n";
$app = new App();
$app->initialize();
echo "✅ 应用初始化成功!\n\n";
try {
$haichaoJst = \app\haichao\HaichaoJstServices::getServices();
echo "正在从聚水潭拉取商品数据...\n\n";
$result = $haichaoJst->getProductListStand();
echo "✅ API调用成功!\n\n";
if (empty($result)) {
echo "⚠️ 未获取到任何商品数据\n\n";
exit(0);
}
echo "📊 统计信息:\n";
echo " - 获取商品数量: " . count($result) . " 个\n\n";
foreach ($result as $index => $product) {
$num = (int)$index + 1;
echo str_repeat("=", 80) . "\n";
echo "商品 #{$num}\n";
echo str_repeat("-", 80) . "\n";
echo "【基本信息】\n";
echo " SPU ID: " . ($product['i_id'] ?? 'N/A') . "\n";
echo " 商品名称: " . ($product['name'] ?? 'N/A') . "\n";
echo " 售价: ¥" . ($product['s_price'] ?? 'N/A') . "\n";
echo " 市场价: ¥" . ($product['market_price'] ?? 'N/A') . "\n";
echo " 成本价: ¥" . ($product['c_price'] ?? 'N/A') . "\n";
echo " 图片URL: " . ($product['pic'] ?? 'N/A') . "\n";
if (isset($product['skus']) && is_array($product['skus']) && count($product['skus']) > 0) {
echo "\n【SKU规格】\n";
echo " SKU数量: " . count($product['skus']) . " 个\n\n";
foreach ($product['skus'] as $skuIndex => $sku) {
$skuNum = $skuIndex + 1;
echo " ┌─ SKU #{$skuNum}\n";
echo " │ SKU ID: " . ($sku['sku_id'] ?? 'N/A') . "\n";
echo " │ 规格属性: " . ($sku['properties_value'] ?? 'N/A') . "\n";
echo " │ 售价: ¥" . ($sku['sale_price'] ?? 'N/A') . "\n";
echo " │ 市场价: ¥" . ($sku['market_price'] ?? 'N/A') . "\n";
echo " │ 成本价: ¥" . ($sku['cost_price'] ?? 'N/A') . "\n";
echo " └─────────────────────────────────────────\n";
}
}
echo "\n";
}
echo str_repeat("=", 80) . "\n";
echo "完整JSON数据:\n";
echo str_repeat("-", 80) . "\n";
echo json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n\n";
echo "========================================\n";
echo "✅ 测试完成!成功拉取 " . count($result) . " 个商品\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);
}