Files
qnc-server-v3/app/main/api/desc/front/pay.api
2026-06-07 14:47:50 +08:00

102 lines
3.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

syntax = "v1"
info (
title: "支付服务"
desc: "支付服务"
version: "v1"
)
@server (
prefix: api/v1
group: pay
)
service main {
// 微信支付回调
@handler WechatPayCallback
post /pay/wechat/callback
// 支付宝支付回调
@handler AlipayCallback
post /pay/alipay/callback
// 微信退款回调
@handler WechatPayRefundCallback
post /pay/wechat/refund_callback
// 微信小程序虚拟支付发货推送GET 验签 + POST 事件)
@handler XpayPush
get /pay/xpay/push
post /pay/xpay/push
}
@server (
prefix: api/v1
group: pay
jwt: JwtAuth
middleware: AuthInterceptor
)
service main {
// 支付
@handler Payment
post /pay/payment (PaymentReq) returns (PaymentResp)
@handler IapCallback
post /pay/iap_callback (IapCallbackReq)
@handler PaymentCheck
post /pay/check (PaymentCheckReq) returns (PaymentCheckResp)
// 小程序虚拟支付:上报微信/Apple 客户端提示与步骤(写入服务端日志并可选查微信单)
@handler XpayClientEvent
post /pay/xpay/client-event (XpayClientEventReq) returns (XpayClientEventResp)
}
type (
PaymentReq {
Id string `json:"id"`
PayMethod string `json:"pay_method"` // 支付方式: wechat, alipay, appleiap, test(仅开发环境), test_empty(仅开发环境-空报告模式)
PayType string `json:"pay_type" validate:"required,oneof=query agent_vip agent_upgrade"`
Code string `json:"code,optional"` // 微信小程序/H5授权码用于自动绑定微信账号当用户未绑定微信时
}
PaymentResp {
PrepayData interface{} `json:"prepay_data"`
PrepayId string `json:"prepay_id"`
OrderNo string `json:"order_no"`
}
PaymentCheckReq {
OrderNo string `json:"order_no" validate:"required"`
}
PaymentCheckResp {
Type string `json:"type"`
Status string `json:"status"`
WxSyncError string `json:"wx_sync_error,optional"` // query_order 失败时微信返回
WxOrderStatus int `json:"wx_order_status,optional"` // 微信侧订单 status
WxOrderDetail string `json:"wx_order_detail,optional"` // query_order 原始 order 摘要(排查用)
}
XpayClientEventReq {
OrderNo string `json:"order_no,optional"`
Stage string `json:"stage" validate:"required"` // prepay_ok, invoke, success, fail, check
EventType string `json:"event_type" validate:"required,oneof=info tip fail success"`
Message string `json:"message,optional"` // 微信/Apple 展示给用户的话术(非 HTTP 报错)
ErrMsg string `json:"err_msg,optional"`
ErrCode int `json:"err_code,optional"`
Errno int `json:"errno,optional"`
SignData string `json:"sign_data,optional"`
Device string `json:"device,optional"`
Extra string `json:"extra,optional"`
}
XpayClientEventResp {
WxOrderStatus int `json:"wx_order_status,optional"`
WxOrderDetail string `json:"wx_order_detail,optional"`
WxSyncError string `json:"wx_sync_error,optional"`
}
)
type (
IapCallbackReq {
OrderID string `json:"order_id" validate:"required"`
TransactionReceipt string `json:"transaction_receipt" validate:"required"`
}
)