|
|
- # 微信物流取消订单测试脚本
- # 使用正确的上下文路径:/recycle-admin
-
- param(
- [string]$openid = "test_admin_openid",
- [string]$deliveryId = "TEST",
- [string]$bizId = "test_biz_id",
- [string]$cancelMsg = "PowerShell自动化测试"
- )
-
- $baseUrl = "http://localhost:8002/recycle-admin"
- $headers = @{"Content-Type"="application/json"}
-
- Write-Host "=" * 60 -ForegroundColor Green
- Write-Host " 微信物流取消订单测试脚本" -ForegroundColor Green
- Write-Host "=" * 60 -ForegroundColor Green
- Write-Host ""
-
- Write-Host "测试配置:" -ForegroundColor Yellow
- Write-Host "- 服务地址: $baseUrl" -ForegroundColor White
- Write-Host "- OpenID: $openid" -ForegroundColor White
- Write-Host "- 快递公司: $deliveryId" -ForegroundColor White
- Write-Host "- 商户ID: $bizId" -ForegroundColor White
- Write-Host "- 取消原因: $cancelMsg" -ForegroundColor White
- Write-Host ""
-
- # 检查服务是否可用
- Write-Host "检查服务状态..." -ForegroundColor Yellow
- try {
- $healthCheck = Invoke-WebRequest -Uri "$baseUrl/actuator/health" -Method GET -TimeoutSec 5
- Write-Host "✅ 服务正常运行" -ForegroundColor Green
- } catch {
- Write-Host "⚠️ 无法访问健康检查端点,继续测试..." -ForegroundColor Yellow
- }
-
- Write-Host ""
- Write-Host "开始执行完整流程测试(下单 -> 取消)..." -ForegroundColor Yellow
- Write-Host ""
-
- try {
- # 构建请求体
- $requestBody = @{
- openid = $openid
- deliveryId = $deliveryId
- bizId = $bizId
- cancelMsg = $cancelMsg
- } | ConvertTo-Json
-
- Write-Host "发送请求到: $baseUrl/applet/logistics/test/fullTestWithCancel" -ForegroundColor Cyan
- Write-Host "请求数据: $requestBody" -ForegroundColor Gray
- Write-Host ""
-
- # 发送请求
- $response = Invoke-WebRequest -Uri "$baseUrl/applet/logistics/test/fullTestWithCancel" `
- -Method POST `
- -Headers $headers `
- -Body $requestBody `
- -TimeoutSec 30
-
- # 解析响应
- $result = $response.Content | ConvertFrom-Json
-
- Write-Host "响应状态码: $($response.StatusCode)" -ForegroundColor Cyan
- Write-Host ""
-
- if ($result.success) {
- Write-Host "🎉 测试成功!" -ForegroundColor Green
- Write-Host ""
-
- # 显示下单结果
- if ($result.result.orderResponse) {
- Write-Host "📦 下单结果:" -ForegroundColor Yellow
- Write-Host " 订单ID: $($result.result.orderResponse.orderId)" -ForegroundColor Cyan
- Write-Host " 运单ID: $($result.result.orderResponse.waybillId)" -ForegroundColor Cyan
- Write-Host " 错误码: $($result.result.orderResponse.errCode)" -ForegroundColor Cyan
- Write-Host " 错误信息: $($result.result.orderResponse.errMsg)" -ForegroundColor Cyan
-
- if ($result.result.orderResponse.waybillData) {
- Write-Host " 运单数据: 已生成" -ForegroundColor Cyan
- }
- Write-Host ""
- }
-
- # 显示取消结果
- if ($result.result.cancelResponse) {
- Write-Host "❌ 取消结果:" -ForegroundColor Yellow
- Write-Host " 错误码: $($result.result.cancelResponse.errCode)" -ForegroundColor Cyan
- Write-Host " 错误信息: $($result.result.cancelResponse.errMsg)" -ForegroundColor Cyan
-
- if ($result.result.cancelResponse.cancelTime) {
- $cancelTime = [DateTimeOffset]::FromUnixTimeSeconds($result.result.cancelResponse.cancelTime).ToString("yyyy-MM-dd HH:mm:ss")
- Write-Host " 取消时间: $cancelTime" -ForegroundColor Cyan
- }
- Write-Host ""
- }
-
- # 显示总结信息
- Write-Host "📋 测试总结:" -ForegroundColor Yellow
- Write-Host " $($result.result.message)" -ForegroundColor White
- Write-Host ""
-
- } else {
- Write-Host "❌ 测试失败!" -ForegroundColor Red
- Write-Host "错误信息: $($result.message)" -ForegroundColor Red
-
- if ($result.result) {
- Write-Host "详细信息: $($result.result)" -ForegroundColor Red
- }
- Write-Host ""
- }
-
- } catch {
- Write-Host "❌ 请求失败!" -ForegroundColor Red
- Write-Host "错误信息: $($_.Exception.Message)" -ForegroundColor Red
- Write-Host ""
-
- # 提供排查建议
- Write-Host "🔍 排查建议:" -ForegroundColor Yellow
- Write-Host "1. 检查应用是否在 $baseUrl 运行" -ForegroundColor White
- Write-Host "2. 检查微信配置是否正确" -ForegroundColor White
- Write-Host "3. 确认网络连接正常" -ForegroundColor White
- Write-Host "4. 验证测试环境权限" -ForegroundColor White
- Write-Host ""
-
- # 显示详细错误信息
- if ($_.Exception.Response) {
- Write-Host "响应状态码: $($_.Exception.Response.StatusCode)" -ForegroundColor Red
- Write-Host "响应状态: $($_.Exception.Response.StatusDescription)" -ForegroundColor Red
- }
- Write-Host ""
- }
-
- Write-Host "=" * 60 -ForegroundColor Green
- Write-Host " 测试完成!" -ForegroundColor Green
- Write-Host "=" * 60 -ForegroundColor Green
- Write-Host ""
-
- # 提供后续操作建议
- Write-Host "💡 后续操作建议:" -ForegroundColor Yellow
- Write-Host "1. 如果测试成功,可以在实际应用中使用相同的逻辑" -ForegroundColor White
- Write-Host "2. 记住每天最多只能调用10次,请合理安排测试" -ForegroundColor White
- Write-Host "3. 在生产环境中,请替换为实际的openid和配置" -ForegroundColor White
- Write-Host "4. 可以通过Swagger UI进行更详细的测试: $baseUrl/swagger-ui.html" -ForegroundColor White
- Write-Host ""
-
- # 参数说明
- Write-Host "📖 脚本参数说明:" -ForegroundColor Yellow
- Write-Host "使用示例:" -ForegroundColor White
- Write-Host " .\test-logistics.ps1" -ForegroundColor Gray
- Write-Host " .\test-logistics.ps1 -openid 'your_openid' -cancelMsg '自定义取消原因'" -ForegroundColor Gray
- Write-Host ""
-
- Write-Host "按任意键退出..." -ForegroundColor Green
- $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | Out-Null
|