119 lines
3.7 KiB
Bash
Executable File
119 lines
3.7 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
BASE_URL="http://127.0.0.1:8080/api"
|
|
|
|
echo "=== 支付配置功能测试 ==="
|
|
echo ""
|
|
|
|
# 1. 获取验证码
|
|
echo "1. 获取验证码..."
|
|
CAPTCHA_RESP=$(curl -s "${BASE_URL}/admin/auth/captcha")
|
|
CAPTCHA_ID=$(echo $CAPTCHA_RESP | jq -r '.data.captcha_id')
|
|
echo " 验证码 ID: $CAPTCHA_ID"
|
|
|
|
# 2. 登录(开发环境验证码可以使用任意值)
|
|
echo ""
|
|
echo "2. 管理员登录..."
|
|
LOGIN_RESP=$(curl -s "${BASE_URL}/admin/auth/login" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"username\":\"admin\",\"password\":\"admin123456\",\"captcha_id\":\"${CAPTCHA_ID}\",\"captcha\":\"RAZK\"}")
|
|
|
|
TOKEN=$(echo $LOGIN_RESP | jq -r '.data.token')
|
|
if [ "$TOKEN" = "null" ] || [ -z "$TOKEN" ]; then
|
|
echo " ❌ 登录失败"
|
|
echo $LOGIN_RESP | jq .
|
|
exit 1
|
|
fi
|
|
echo " ✅ 登录成功"
|
|
echo " Token: ${TOKEN:0:50}..."
|
|
|
|
# 3. 查看支付配置列表
|
|
echo ""
|
|
echo "3. 查看支付配置列表..."
|
|
LIST_RESP=$(curl -s "${BASE_URL}/admin/payment-configs" \
|
|
-H "Authorization: Bearer ${TOKEN}")
|
|
echo $LIST_RESP | jq .
|
|
TOTAL=$(echo $LIST_RESP | jq -r '.data.total // 0')
|
|
echo " 当前配置数量: $TOTAL"
|
|
|
|
# 4. 创建测试支付配置
|
|
echo ""
|
|
echo "4. 创建测试支付配置..."
|
|
CREATE_RESP=$(curl -s "${BASE_URL}/admin/payment-configs" \
|
|
-H "Authorization: Bearer ${TOKEN}" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"name": "测试乐刷商户",
|
|
"provider": "leshua",
|
|
"merchant_id": "TEST123456789",
|
|
"gateway_url": "https://t-paygate.lepass.cn/cgi-bin/lepos_pay_gateway.cgi",
|
|
"sign_key": "test-sign-key-secret",
|
|
"notify_key": "test-notify-key-secret",
|
|
"notify_url": "http://localhost:8080/api/payments/leshua/notify",
|
|
"jump_url": "http://localhost:5173/payment/result",
|
|
"pay_way": "ZFBZF",
|
|
"jspay_flag": "2",
|
|
"sign_type": "MD5",
|
|
"is_default": true,
|
|
"status": "active",
|
|
"environment": "sandbox"
|
|
}')
|
|
|
|
CONFIG_ID=$(echo $CREATE_RESP | jq -r '.data.id // empty')
|
|
if [ -z "$CONFIG_ID" ]; then
|
|
echo " ❌ 创建失败"
|
|
echo $CREATE_RESP | jq .
|
|
exit 1
|
|
fi
|
|
echo " ✅ 创建成功,配置 ID: $CONFIG_ID"
|
|
|
|
# 5. 查看单个配置(不包含密钥)
|
|
echo ""
|
|
echo "5. 查看配置详情(不包含密钥)..."
|
|
GET_RESP=$(curl -s "${BASE_URL}/admin/payment-configs/${CONFIG_ID}" \
|
|
-H "Authorization: Bearer ${TOKEN}")
|
|
echo $GET_RESP | jq .
|
|
SIGN_KEY=$(echo $GET_RESP | jq -r '.data.sign_key')
|
|
echo " 密钥是否加密: $([ \"$SIGN_KEY\" = \"******\" ] && echo '✅ 是' || echo '❌ 否')"
|
|
|
|
# 6. 查看配置(包含密钥明文)
|
|
echo ""
|
|
echo "6. 查看配置详情(包含密钥明文)..."
|
|
GET_SECRET_RESP=$(curl -s "${BASE_URL}/admin/payment-configs/${CONFIG_ID}?include_secret=true" \
|
|
-H "Authorization: Bearer ${TOKEN}")
|
|
SIGN_KEY_PLAIN=$(echo $GET_SECRET_RESP | jq -r '.data.sign_key')
|
|
echo " 解密后的 sign_key: $SIGN_KEY_PLAIN"
|
|
echo " 密钥是否正确: $([ \"$SIGN_KEY_PLAIN\" = \"test-sign-key-secret\" ] && echo '✅ 是' || echo '❌ 否')"
|
|
|
|
# 7. 更新配置
|
|
echo ""
|
|
echo "7. 更新配置..."
|
|
UPDATE_RESP=$(curl -s -X PUT "${BASE_URL}/admin/payment-configs/${CONFIG_ID}" \
|
|
-H "Authorization: Bearer ${TOKEN}" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"name": "测试乐刷商户(已更新)",
|
|
"status": "testing"
|
|
}')
|
|
echo $UPDATE_RESP | jq .
|
|
NEW_NAME=$(echo $UPDATE_RESP | jq -r '.data.name')
|
|
echo " 更新后名称: $NEW_NAME"
|
|
|
|
# 8. 查看最终配置列表
|
|
echo ""
|
|
echo "8. 查看最终配置列表..."
|
|
FINAL_LIST=$(curl -s "${BASE_URL}/admin/payment-configs" \
|
|
-H "Authorization: Bearer ${TOKEN}")
|
|
echo $FINAL_LIST | jq .
|
|
|
|
# 9. 删除测试配置
|
|
echo ""
|
|
echo "9. 删除测试配置..."
|
|
DELETE_RESP=$(curl -s -X DELETE "${BASE_URL}/admin/payment-configs/${CONFIG_ID}" \
|
|
-H "Authorization: Bearer ${TOKEN}")
|
|
echo $DELETE_RESP | jq .
|
|
|
|
echo ""
|
|
echo "=== ✅ 测试完成 ==="
|