Files
zyt/admin/PAYMENT_API_ENDPOINTS.md
T
2026-03-11 14:33:49 +08:00

6.8 KiB

支付API端点文档

支付相关API

1. 支付宝支付

端点: POST /order.order/alipay

请求参数:

正常支付

{
  "id": 1,
  "order_no": "ORD20240101120000123456",
  "amount": 100.00,
  "payment_method": "alipay"
}

补单支付

{
  "order_no": "ORD20240101120000123456",
  "payment_method": "alipay",
  "is_supplement": 1
}

响应:

{
  "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

请求参数:

正常支付

{
  "id": 1,
  "order_no": "ORD20240101120000123456",
  "amount": 100.00,
  "payment_method": "wechat"
}

补单支付

{
  "order_no": "ORD20240101120000123456",
  "payment_method": "wechat",
  "is_supplement": 1
}

响应:

{
  "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_urlpay_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>
  <appid>wx1234567890abcdef</appid>
  <mch_id>1234567890</mch_id>
  <nonce_str>abc123def456</nonce_str>
  <sign>ABC123DEF456</sign>
  <result_code>SUCCESS</result_code>
  <out_trade_no>ORD20240101120000123456</out_trade_no>
  <total_fee>10000</total_fee>
  <transaction_id>4200001234567890</transaction_id>
  <trade_type>NATIVE</trade_type>
</xml>

响应 (XML格式):

<xml>
  <return_code><![CDATA[SUCCESS]]></return_code>
  <return_msg><![CDATA[支付成功]]></return_msg>
</xml>

说明:

  • 微信会在支付完成后发送异步通知
  • 后端验证签名和金额
  • 更新订单状态为"已支付"
  • 返回 XML 格式的响应

其他订单API

5. 订单列表

端点: GET /order.order/lists

请求参数:

{
  "page_no": 1,
  "page_size": 10,
  "order_no": "",
  "patient_keyword": "",
  "order_type": "",
  "status": "",
  "create_time_start": "",
  "create_time_end": ""
}

响应:

{
  "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

请求参数:

{
  "id": 1
}

响应:

{
  "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

请求参数:

{
  "patient_id": 1,
  "order_type": 1,
  "amount": 100.00,
  "remark": "备注信息"
}

响应:

{
  "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

请求参数:

{
  "id": 1,
  "remark": "新的备注信息"
}

响应:

{
  "code": 0,
  "msg": "编辑成功"
}

9. 取消订单

端点: POST /order.order/cancel

请求参数:

{
  "id": 1
}

响应:

{
  "code": 0,
  "msg": "取消成功"
}

10. 退款订单

端点: POST /order.order/refund

请求参数:

{
  "id": 1
}

响应:

{
  "code": 0,
  "msg": "退款成功"
}

11. 删除订单

端点: POST /order.order/delete

请求参数:

{
  "id": 1
}

响应:

{
  "code": 0,
  "msg": "删除成功"
}

错误响应

所有API在出错时返回以下格式:

{
  "code": 1,
  "msg": "错误信息"
}

常见错误:

  • 订单不存在 - 订单ID无效
  • 订单状态不允许支付 - 订单已支付或已取消
  • 签名验证失败 - 支付网关回调签名验证失败
  • 金额不匹配 - 支付金额与订单金额不符
  • 支付宝配置不完整 - 缺少支付宝配置
  • 微信支付配置不完整 - 缺少微信支付配置

状态码说明

状态码 说明
1 待支付
2 已支付
3 已取消
4 已退款

订单类型说明

类型码 说明
1 挂号费
2 问诊费
3 药品费用

支付方式说明

方式 说明
alipay 支付宝
wechat 微信