1.8 KiB
1.8 KiB
微信支付 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
使用
# 安装依赖
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)