# 支付API端点文档 ## 支付相关API ### 1. 支付宝支付 **端点**: `POST /order.order/alipay` **请求参数**: #### 正常支付 ```json { "id": 1, "order_no": "ORD20240101120000123456", "amount": 100.00, "payment_method": "alipay" } ``` #### 补单支付 ```json { "order_no": "ORD20240101120000123456", "payment_method": "alipay", "is_supplement": 1 } ``` **响应**: ```json { "code": 0, "msg": "success", "data": { "pay_url": "https://openapi.alipay.com/gateway.do?app_id=xxx&method=alipay.trade.page.pay&..." } } ``` **说明**: - 返回支付宝支付URL - 前端跳转到该URL进行支付 - 支付完成后支付宝会回调 `/api/order/alipay-notify` --- ### 2. 微信支付 **端点**: `POST /order.order/wechat` **请求参数**: #### 正常支付 ```json { "id": 1, "order_no": "ORD20240101120000123456", "amount": 100.00, "payment_method": "wechat" } ``` #### 补单支付 ```json { "order_no": "ORD20240101120000123456", "payment_method": "wechat", "is_supplement": 1 } ``` **响应**: ```json { "code": 0, "msg": "success", "data": { "pay_url": "https://api.mch.weixin.qq.com/pay/unifiedorder", "pay_data": { "appid": "wx1234567890abcdef", "mch_id": "1234567890", "nonce_str": "abc123def456", "body": "订单支付", "out_trade_no": "ORD20240101120000123456", "total_fee": 10000, "spbill_create_ip": "192.168.1.1", "notify_url": "https://yourdomain.com/api/order/wechat-notify", "trade_type": "NATIVE", "sign": "ABC123DEF456" }, "order_no": "ORD20240101120000123456" } } ``` **说明**: - 返回微信支付数据 - 前端需要将 `pay_data` 发送到微信支付API - 或者使用 `pay_url` 和 `pay_data` 生成二维码 - 支付完成后微信会回调 `/api/order/wechat-notify` --- ### 3. 支付宝异步通知 **端点**: `POST /api/order/alipay-notify` **请求参数** (由支付宝发送): ``` app_id=2021000000000000 method=alipay.trade.page.pay charset=UTF-8 sign_type=RSA2 timestamp=2024-01-01 12:00:00 version=1.0 notify_url=https://yourdomain.com/api/order/alipay-notify return_url=https://yourdomain.com/order biz_content={"out_trade_no":"ORD20240101120000123456",...} sign=ABC123DEF456... trade_status=TRADE_SUCCESS trade_no=2024010100000001 out_trade_no=ORD20240101120000123456 total_amount=100.00 ``` **响应**: ``` success ``` **说明**: - 支付宝会在支付完成后发送异步通知 - 后端验证签名和金额 - 更新订单状态为"已支付" - 返回 `success` 表示处理成功 --- ### 4. 微信异步通知 **端点**: `POST /api/order/wechat-notify` **请求参数** (由微信发送,XML格式): ```xml wx1234567890abcdef 1234567890 abc123def456 ABC123DEF456 SUCCESS ORD20240101120000123456 10000 4200001234567890 NATIVE ``` **响应** (XML格式): ```xml ``` **说明**: - 微信会在支付完成后发送异步通知 - 后端验证签名和金额 - 更新订单状态为"已支付" - 返回 XML 格式的响应 --- ## 其他订单API ### 5. 订单列表 **端点**: `GET /order.order/lists` **请求参数**: ```json { "page_no": 1, "page_size": 10, "order_no": "", "patient_keyword": "", "order_type": "", "status": "", "create_time_start": "", "create_time_end": "" } ``` **响应**: ```json { "code": 0, "msg": "success", "data": { "lists": [ { "id": 1, "order_no": "ORD20240101120000123456", "patient": { "id": 1, "patient_name": "张三", "phone": "13800000000" }, "creator": { "id": 1, "name": "李四" }, "order_type": 1, "amount": 100.00, "status": 2, "payment_method": "alipay", "payment_time": "2024-01-01 12:30:00", "create_time": "2024-01-01 12:00:00" } ], "count": 100, "page_no": 1, "page_size": 10 } } ``` --- ### 6. 订单详情 **端点**: `POST /order.order/detail` **请求参数**: ```json { "id": 1 } ``` **响应**: ```json { "code": 0, "msg": "success", "data": { "id": 1, "order_no": "ORD20240101120000123456", "patient": { "id": 1, "patient_name": "张三", "phone": "13800000000" }, "creator": { "id": 1, "name": "李四" }, "order_type": 1, "amount": 100.00, "status": 2, "payment_method": "alipay", "payment_time": "2024-01-01 12:30:00", "create_time": "2024-01-01 12:00:00", "remark": "备注信息" } } ``` --- ### 7. 创建订单 **端点**: `POST /order.order/create` **请求参数**: ```json { "patient_id": 1, "order_type": 1, "amount": 100.00, "remark": "备注信息" } ``` **响应**: ```json { "code": 0, "msg": "创建成功", "data": { "id": 1, "order_no": "ORD20240101120000123456", "patient_id": 1, "creator_id": 1, "order_type": 1, "amount": 100.00, "status": 1, "create_time": "2024-01-01 12:00:00" } } ``` --- ### 8. 编辑订单 **端点**: `POST /order.order/edit` **请求参数**: ```json { "id": 1, "remark": "新的备注信息" } ``` **响应**: ```json { "code": 0, "msg": "编辑成功" } ``` --- ### 9. 取消订单 **端点**: `POST /order.order/cancel` **请求参数**: ```json { "id": 1 } ``` **响应**: ```json { "code": 0, "msg": "取消成功" } ``` --- ### 10. 退款订单 **端点**: `POST /order.order/refund` **请求参数**: ```json { "id": 1 } ``` **响应**: ```json { "code": 0, "msg": "退款成功" } ``` --- ### 11. 删除订单 **端点**: `POST /order.order/delete` **请求参数**: ```json { "id": 1 } ``` **响应**: ```json { "code": 0, "msg": "删除成功" } ``` --- ## 错误响应 所有API在出错时返回以下格式: ```json { "code": 1, "msg": "错误信息" } ``` **常见错误**: - `订单不存在` - 订单ID无效 - `订单状态不允许支付` - 订单已支付或已取消 - `签名验证失败` - 支付网关回调签名验证失败 - `金额不匹配` - 支付金额与订单金额不符 - `支付宝配置不完整` - 缺少支付宝配置 - `微信支付配置不完整` - 缺少微信支付配置 --- ## 状态码说明 | 状态码 | 说明 | |--------|------| | 1 | 待支付 | | 2 | 已支付 | | 3 | 已取消 | | 4 | 已退款 | ## 订单类型说明 | 类型码 | 说明 | |--------|------| | 1 | 挂号费 | | 2 | 问诊费 | | 3 | 药品费用 | ## 支付方式说明 | 方式 | 说明 | |------|------| | alipay | 支付宝 | | wechat | 微信 |