Files
order/model/entity/payment_config.go
2026-02-24 16:49:31 +08:00

78 lines
4.0 KiB
Go
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.
package entity
import (
"go.mongodb.org/mongo-driver/v2/bson"
"gitea.com/red-future/common/beans"
)
// PaymentConfig 支付配置
// 每个租户有独立的支付配置
// 支持微信支付和支付宝支付
type PaymentConfig struct {
beans.MongoBaseDO `bson:",inline"`
PayMethod string `bson:"pay_method" json:"pay_method"` // 支付方式wechat/alipay
ConfigName string `bson:"config_name" json:"config_name"` // 配置名称
Description string `bson:"description" json:"description"` // 配置描述
Enabled bool `bson:"enabled" json:"enabled"` // 是否启用
// 通用配置
AppID string `bson:"app_id" json:"app_id"` // 应用ID
MchID string `bson:"mch_id" json:"mch_id"` // 商户号
APIKey string `bson:"api_key" json:"api_key"` // API密钥
NotifyURL string `bson:"notify_url" json:"notify_url"` // 回调地址
ReturnURL string `bson:"return_url" json:"return_url"` // 返回地址
// 证书配置(微信支付)
CertPath string `bson:"cert_path,omitempty" json:"cert_path"` // 证书路径
KeyPath string `bson:"key_path,omitempty" json:"key_path"` // 密钥路径
// 支付宝特有配置
AppPrivateKey string `bson:"app_private_key,omitempty" json:"app_private_key"` // 应用私钥
AlipayPublicKey string `bson:"alipay_public_key,omitempty" json:"alipay_public_key"` // 支付宝公钥
// 环境配置
Sandbox bool `bson:"sandbox" json:"sandbox"` // 是否沙箱环境
GatewayURL string `bson:"gateway_url" json:"gateway_url"` // 网关地址
// 支持的支付类型
SupportNative bool `bson:"support_native" json:"support_native"` // 支持扫码支付
SupportJSAPI bool `bson:"support_jsapi" json:"support_jsapi"` // 支持JSAPI支付
SupportAPP bool `bson:"support_app" json:"support_app"` // 支持APP支付
SupportH5 bool `bson:"support_h5" json:"support_h5"` // 支持H5支付
}
// PaymentRecord 支付记录
// 记录每次支付操作的结果
type PaymentRecord struct {
beans.MongoBaseDO `bson:",inline"`
OrderID bson.ObjectID `bson:"order_id" json:"order_id"` // 订单ID
OrderNo string `bson:"order_no" json:"order_no"` // 订单号
PayMethod string `bson:"pay_method" json:"pay_method"` // 支付方式
PayType string `bson:"pay_type" json:"pay_type"` // 支付类型
Amount int64 `bson:"amount" json:"amount"` // 支付金额(分)
TransactionID string `bson:"transaction_id" json:"transaction_id"` // 支付平台交易号
OutTradeNo string `bson:"out_trade_no" json:"out_trade_no"` // 商户订单号
TradeNo string `bson:"trade_no" json:"trade_no"` // 交易号
PrepayID string `bson:"prepay_id,omitempty" json:"prepay_id"` // 预支付ID
Status string `bson:"status" json:"status"` // 支付状态success/failed
ErrorMsg string `bson:"error_msg,omitempty" json:"error_msg"` // 错误信息
}
// RefundRecord 退款记录
// 记录每次退款操作的结果
type RefundRecord struct {
beans.MongoBaseDO `bson:",inline"`
OrderID bson.ObjectID `bson:"order_id" json:"order_id"` // 订单ID
OrderNo string `bson:"order_no" json:"order_no"` // 订单号
RefundNo string `bson:"refund_no" json:"refund_no"` // 退款单号
RefundID string `bson:"refund_id" json:"refund_id"` // 退款ID
RefundAmount int64 `bson:"refund_amount" json:"refund_amount"` // 退款金额(分)
Reason string `bson:"reason" json:"reason"` // 退款原因
Status string `bson:"status" json:"status"` // 退款状态success/failed
ErrorMsg string `bson:"error_msg,omitempty" json:"error_msg"` // 错误信息
}