102 lines
3.1 KiB
Plaintext
102 lines
3.1 KiB
Plaintext
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"`
|
||
}
|
||
)
|
||
|