From 1d32993ec3faa6a474ad66c8c7868ee934b88be4 Mon Sep 17 00:00:00 2001 From: brianling Date: Sun, 12 Jul 2026 14:45:05 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..34f8eef --- /dev/null +++ b/README.md @@ -0,0 +1,68 @@ +# 微信支付 Native 页面 + +基于 Express + EJS + JSON 文件存储的微信支付 Native 模式演示项目。 + +## 功能 + +- 商品列表展示 +- 微信支付 Native 统一下单,生成支付二维码 +- 前端轮询订单状态,支付成功自动跳转 +- 微信支付异步通知回调处理(验签 + 更新订单) +- 订单记录查询页 +- 数据以 JSON 文件存储,无需数据库 + +## 目录结构 + +``` +├── app.js # Express 入口 +├── config.js # 微信支付配置(已 gitignore) +├── config.example.js # 配置模板 +├── data/orders.json # 订单数据文件 +├── utils/storage.js # JSON 文件读写封装 +├── routes/ +│ ├── index.js # 首页路由 +│ └── pay.js # 支付相关路由 +├── views/ +│ ├── index.ejs # 商品列表 +│ ├── pay.ejs # 支付页(二维码 + 轮询) +│ ├── success.ejs # 支付成功页 +│ └── orders.ejs # 订单记录 +└── public/css/style.css +``` + +## 使用 + +```bash +# 安装依赖 +npm install + +# 修改配置 +cp config.example.js config.js +# 编辑 config.js,填入微信支付凭据 + +# 启动 +npm start +``` + +访问 `http://localhost:3000` + +## 接口 + +| 路由 | 说明 | +|------|------| +| `GET /` | 商品列表 | +| `GET /pay/create/:productId` | 创建订单、生成二维码 | +| `GET /pay/status/:orderId` | 查询订单状态(轮询用) | +| `POST /pay/notify` | 微信支付回调通知 | +| `GET /pay/success/:orderId` | 支付成功页 | +| `GET /pay/orders` | 订单记录 | + +## 技术栈 + +- Express 4 +- EJS 模板引擎 +- qrcode(服务端生成二维码 Data URL) +- axios(调用微信 API) +- xml2js(解析微信 XML 响应) +- uuid(生成订单号) +- JSON 文件存储(`data/orders.json`)