6.8 KiB
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_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>
<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 | 支付宝 |
| 微信 |