add epay route support

This commit is contained in:
line-6000
2026-04-12 18:14:40 +08:00
parent 730ff983f8
commit 32ca778735
9 changed files with 216 additions and 29 deletions
+7 -1
View File
@@ -8,9 +8,13 @@ const (
CallBackConfirmNo = 2
)
const (
PaymentTypeEpay = "Epay"
)
type Orders struct {
TradeId string `gorm:"column:trade_id;uniqueIndex:orders_trade_id_uindex" json:"trade_id"`
OrderId string `gorm:"column:order_id;uniqueIndex:orders_order_id_uindex" json:"order_id"`
OrderId string `gorm:"column:order_id;uniqueIndex:orders_order_id_uindex" json:"order_id"` // the order id is generated by client, and will notify client when order is paid
BlockTransactionId string `gorm:"index:orders_block_transaction_id_index;column:block_transaction_id" json:"block_transaction_id"`
Amount float64 `gorm:"column:amount" json:"amount"`
Currency string `gorm:"column:currency" json:"currency"`
@@ -21,8 +25,10 @@ type Orders struct {
Status int `gorm:"column:status;default:1" json:"status"`
NotifyUrl string `gorm:"column:notify_url" json:"notify_url"`
RedirectUrl string `gorm:"column:redirect_url" json:"redirect_url"`
Name string `gorm:"column:name" json:"name"`
CallbackNum int `gorm:"column:callback_num;default:0" json:"callback_num"`
CallBackConfirm int `gorm:"column:callback_confirm;default:2" json:"callback_confirm"`
PaymentType string `gorm:"column:payment_type" json:"payment_type"`
BaseModel
}
+2
View File
@@ -12,6 +12,8 @@ type CreateTransactionRequest struct {
NotifyUrl string `json:"notify_url" validate:"required"`
Signature string `json:"signature" validate:"required"`
RedirectUrl string `json:"redirect_url"`
Name string `json:"name"`
PaymentType string `json:"payment_type"`
}
func (r CreateTransactionRequest) Translates() map[string]string {
+13
View File
@@ -25,3 +25,16 @@ type OrderNotifyResponse struct {
Signature string `json:"signature"` // 签名
Status int `json:"status"` // 1:等待支付,2:支付成功,3:已过期
}
// OrderNotifyResponseEpay epay订单异步回调结构体
type OrderNotifyResponseEpay struct {
PID int `json:"pid"` // 商户ID
TradeNo string `json:"trade_no"` // 平台订单号
OutTradeNo string `json:"out_trade_no"` // 商户订单号
Type string `json:"type"` // 订单类型
Name string `json:"name"` // 商品名称
Money string `json:"money"` // 订单金额,保留4位小数
Sign string `json:"sign"` // 签名
SignType string `json:"sign_type"` // 签名类型 // MD5
TradeStatus string `json:"trade_status"` // 订单状态 // only has "TRADE_SUCCESS" for now
}
+2
View File
@@ -95,6 +95,8 @@ func CreateTransaction(req *request.CreateTransactionRequest) (*response.CreateT
Status: mdb.StatusWaitPay,
NotifyUrl: req.NotifyUrl,
RedirectUrl: req.RedirectUrl,
Name: req.Name,
PaymentType: req.PaymentType,
}
if err = data.CreateOrderWithTransaction(tx, order); err != nil {
tx.Rollback()