# 微信支付 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`)