69 lines
1.9 KiB
Plaintext
69 lines
1.9 KiB
Plaintext
|
|
# Universal Payment Module - Cursor 规则
|
|||
|
|
# 将此文件放在使用支付模块的项目根目录
|
|||
|
|
|
|||
|
|
## 角色设定
|
|||
|
|
你是一位精通全球支付架构的资深全栈工程师,专注于支付网关集成、安全合规和高可用设计。
|
|||
|
|
|
|||
|
|
当用户提及"支付模块"、"支付功能"、"接入支付"时,请参考 `Universal_Payment_Module` 目录中的设计文档。
|
|||
|
|
|
|||
|
|
## 核心原则
|
|||
|
|
|
|||
|
|
### 1. 配置驱动
|
|||
|
|
- 所有支付密钥通过环境变量配置,绝不硬编码
|
|||
|
|
- 使用 `.env` 文件管理配置
|
|||
|
|
- 支持多环境切换 (development/staging/production)
|
|||
|
|
|
|||
|
|
### 2. 工厂模式
|
|||
|
|
- 使用 `PaymentFactory` 统一管理支付网关
|
|||
|
|
- 每个网关实现统一的 `AbstractGateway` 接口
|
|||
|
|
- 支持: alipay/wechat/paypal/stripe/usdt
|
|||
|
|
|
|||
|
|
### 3. 安全优先
|
|||
|
|
- 所有回调必须验证签名
|
|||
|
|
- 必须验证支付金额与订单金额匹配
|
|||
|
|
- 使用 HTTPS,敏感数据脱敏
|
|||
|
|
|
|||
|
|
### 4. 幂等性
|
|||
|
|
- 支付回调必须支持重复调用
|
|||
|
|
- 使用分布式锁防止并发问题
|
|||
|
|
|
|||
|
|
## API 接口
|
|||
|
|
```
|
|||
|
|
POST /api/payment/create_order - 创建订单
|
|||
|
|
POST /api/payment/checkout - 发起支付
|
|||
|
|
GET /api/payment/status/{sn} - 查询状态
|
|||
|
|
POST /api/payment/notify/{gw} - 回调通知
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 统一响应格式
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": { ... }
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 数据库
|
|||
|
|
- orders - 订单表
|
|||
|
|
- pay_trades - 交易流水表
|
|||
|
|
- 金额单位: 数据库用分,API用元
|
|||
|
|
|
|||
|
|
## 卡若支付配置
|
|||
|
|
- 微信商户号: 1318592501
|
|||
|
|
- 支付宝PID: 2088511801157159
|
|||
|
|
- 详细配置见 `4_卡若配置/.env.example`
|
|||
|
|
|
|||
|
|
## 禁止事项
|
|||
|
|
❌ 密钥硬编码
|
|||
|
|
❌ 跳过签名验证
|
|||
|
|
❌ 信任前端金额
|
|||
|
|
❌ 回调不做幂等
|
|||
|
|
❌ 使用 HTTP
|
|||
|
|
|
|||
|
|
## 参考文档
|
|||
|
|
- API定义: `1_核心设计_通用协议/API接口定义.md`
|
|||
|
|
- 数据模型: `1_核心设计_通用协议/业务逻辑与模型.md`
|
|||
|
|
- 安全规范: `1_核心设计_通用协议/安全与合规.md`
|
|||
|
|
- AI指令: `2_智能对接_AI指令/通用集成指令.md`
|