# 信用卡生成 API 一个轻量级的 REST API 服务,用于生成随机的测试用信用卡信息。 ## 功能特性 - ✅ 生成随机信用卡号(16位) - ✅ 生成 CVV 安全码(3位) - ✅ 生成有效期(MM/YY 格式) - ✅ 随机银行名称(建设、工商、农业、中国、招商、广发) - ✅ 生成持卡人姓名(中文) - ✅ 生成性别 - ✅ 生成身份证号(18位) ## 快速开始 ### 方式一:本地运行(推荐,无需 Docker) #### 1. 启动服务器 ```bash bash start-server.sh ``` #### 2. 测试 API ```bash # 使用测试脚本 bash test-api.sh # 或使用 curl curl http://localhost:8666/api/card # 或在浏览器访问 http://localhost:8666/api/card ``` #### 3. 停止服务器 ```bash pkill -f CardApiServer ``` --- ### 方式二:Docker 部署 **前提条件:** 已安装 Docker #### 使用 Docker Compose(推荐) ```bash # 一键部署 bash docker-compose-deploy.sh # 或手动执行 docker-compose up -d --build ``` #### 使用 Docker 命令 ```bash # 一键部署 bash docker-deploy.sh # 或手动执行 docker build -t bankcard-api . docker run -d -p 8666:8666 --name bankcard-api bankcard-api ``` #### Docker 管理命令 ```bash # 查看日志 docker logs -f bankcard-api # 停止服务 docker stop bankcard-api # 重启服务 docker restart bankcard-api # 删除容器 docker rm -f bankcard-api # 使用 Docker Compose docker-compose logs -f # 查看日志 docker-compose down # 停止服务 docker-compose restart # 重启服务 ``` ## API 接口 ### 获取信用卡信息 **请求:** ``` GET http://localhost:8666/api/card ``` **响应示例:** ```json { "cardNo": "6227071234567890", "bankId": "CCB", "cvv": "123", "bankName": "建设银行", "validityPeriod": "05/27", "holderName": "张伟", "gender": "男", "holderIdCardNo": "110101199001011234" } ``` ## 项目结构 ``` . ├── BankCardBean.java # 数据模型 ├── VirCardNoUtils.java # 工具类(生成随机信息) ├── CardApiServer.java # HTTP 服务器 ├── Dockerfile # Docker 镜像配置 ├── docker-compose.yml # Docker Compose 配置 ├── .dockerignore # Docker 忽略文件 ├── start-server.sh # 本地启动脚本 ├── docker-deploy.sh # Docker 部署脚本 ├── docker-compose-deploy.sh # Docker Compose 部署脚本 ├── test-api.sh # API 测试脚本 └── README.md # 本文档 ``` ## 技术栈 - Java 8+ - Java 内置 HTTP 服务器 (com.sun.net.httpserver) - 零依赖,无需 Maven 或 Spring Boot ## 支持的银行 - 建设银行 (CCB) - 工商银行 (ICBC) - 农业银行 (ABC) - 中国银行 (BOC) - 招商银行 (CMBCHINA) - 广发银行 (GDB) ## 常见问题 **Q: 如何修改端口?** A: - 本地运行:编辑 `CardApiServer.java`,修改端口号 - Docker 运行:修改 `docker-compose.yml` 中的端口映射 ```java // CardApiServer.java HttpServer server = HttpServer.create(new InetSocketAddress(9999), 0); ``` ```yaml # docker-compose.yml ports: - "9999:8666" # 主机端口:容器端口 ``` **Q: 如何后台运行?** A: - 本地运行:`nohup java CardApiServer > server.log 2>&1 &` - Docker 运行:默认就是后台运行(-d 参数) **Q: 如何查看运行状态?** A: - 本地运行:`ps aux | grep CardApiServer` - Docker 运行:`docker ps | grep bankcard-api` **Q: Docker 构建失败怎么办?** A: 如果遇到网络问题无法拉取镜像,可以: 1. 配置 Docker 镜像加速器(推荐) 2. 使用本地运行方式(bash start-server.sh) 配置镜像加速器(macOS): - Docker Desktop → Settings → Docker Engine - 添加以下配置: ```json { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com" ] } ``` ## 注意事项 ⚠️ **重要提示:** 此工具生成的信用卡信息仅供开发测试使用,请勿用于任何非法用途。 ## License 仅供学习和测试使用。