This commit is contained in:
32
pkg/constants/agent_recharge.go
Normal file
32
pkg/constants/agent_recharge.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package constants
|
||||
|
||||
import "time"
|
||||
|
||||
const (
|
||||
// OutboxEventTypeAgentRechargePaymentConfirmed 表示代理在线充值收款事实已经确认。
|
||||
OutboxEventTypeAgentRechargePaymentConfirmed = "agent_recharge.payment_confirmed.v1"
|
||||
// AgentRechargePaymentConfirmedPayloadVersionV1 是代理充值支付确认事件载荷版本。
|
||||
AgentRechargePaymentConfirmedPayloadVersionV1 = 1
|
||||
)
|
||||
|
||||
const (
|
||||
// AgentRechargeRecoveryBatchSize 是单次支付恢复扫描的最大支付单数。
|
||||
AgentRechargeRecoveryBatchSize = 50
|
||||
// AgentRechargeRecoveryMinimumAge 是支付单进入恢复扫描前的最短等待时间。
|
||||
AgentRechargeRecoveryMinimumAge = 2 * time.Minute
|
||||
)
|
||||
|
||||
const (
|
||||
// AgentRechargeSourcePlatformOffline 表示平台人员发起的线下代充。
|
||||
AgentRechargeSourcePlatformOffline = "platform_offline"
|
||||
// AgentRechargeSourceAgentOnline 表示代理账号为当前店铺发起的在线自充。
|
||||
AgentRechargeSourceAgentOnline = "agent_online"
|
||||
)
|
||||
|
||||
// GetAgentRechargeSource 根据支付方式返回稳定的充值来源及中文名称。
|
||||
func GetAgentRechargeSource(paymentMethod string) (string, string) {
|
||||
if paymentMethod == RechargeMethodWechat || paymentMethod == RechargeMethodAlipay {
|
||||
return AgentRechargeSourceAgentOnline, "代理在线自充"
|
||||
}
|
||||
return AgentRechargeSourcePlatformOffline, "平台线下代充"
|
||||
}
|
||||
@@ -81,15 +81,16 @@ const (
|
||||
TaskTypeAutoPurchaseAfterRecharge = "task:auto_purchase_after_recharge" // 充值后自动购包
|
||||
|
||||
// 定时任务类型(由 Asynq Scheduler 调度)
|
||||
TaskTypeAlertCheck = "alert:check" // 告警检查
|
||||
TaskTypeDataCleanup = "data:cleanup" // 数据清理
|
||||
TaskTypeNotificationCleanup = "notification:cleanup" // 站内通知保留清理
|
||||
TaskTypePackageExpiryReminder = "package:expiry:reminder" // 套餐 15/7/3 天临期提醒
|
||||
TaskTypeDailyTrafficFlush = "traffic:daily:flush" // 每日流量落盘
|
||||
TaskTypeOutboxDeliver = "outbox:deliver" // 公共 Outbox 事件投递
|
||||
TaskTypeCardObservationSeries = "card_observation:series" // 卡观测事件序列尝试
|
||||
TaskTypeWeComApprovalSync = "wecom:approval:sync" // 企业微信审批详情异步同步
|
||||
TaskTypeWeComApprovalRecovery = "wecom:approval:recovery" // 企业微信审批主动恢复与轮询
|
||||
TaskTypeAlertCheck = "alert:check" // 告警检查
|
||||
TaskTypeDataCleanup = "data:cleanup" // 数据清理
|
||||
TaskTypeNotificationCleanup = "notification:cleanup" // 站内通知保留清理
|
||||
TaskTypePackageExpiryReminder = "package:expiry:reminder" // 套餐 15/7/3 天临期提醒
|
||||
TaskTypeDailyTrafficFlush = "traffic:daily:flush" // 每日流量落盘
|
||||
TaskTypeOutboxDeliver = "outbox:deliver" // 公共 Outbox 事件投递
|
||||
TaskTypeCardObservationSeries = "card_observation:series" // 卡观测事件序列尝试
|
||||
TaskTypeWeComApprovalSync = "wecom:approval:sync" // 企业微信审批详情异步同步
|
||||
TaskTypeWeComApprovalRecovery = "wecom:approval:recovery" // 企业微信审批主动恢复与轮询
|
||||
TaskTypeAgentRechargeRecovery = "agent_recharge:payment:recovery" // 代理在线充值支付恢复与查单
|
||||
)
|
||||
|
||||
// 用户状态常量
|
||||
@@ -303,6 +304,8 @@ func QueueForTaskType(taskType string) string {
|
||||
return QueueCardObservationSeries
|
||||
case TaskTypeWeComApprovalSync, TaskTypeWeComApprovalRecovery:
|
||||
return QueueWeComApproval
|
||||
case TaskTypeAgentRechargeRecovery:
|
||||
return QueueDefault
|
||||
default:
|
||||
return QueueDefault
|
||||
}
|
||||
|
||||
@@ -26,6 +26,18 @@ const (
|
||||
IntegrationOperationCUCCRealnameCallback = "realname_callback"
|
||||
// IntegrationInboundProcessingLease 表示入站回调 pending 记录允许恢复前的处理租约。
|
||||
IntegrationInboundProcessingLease = time.Minute
|
||||
// IntegrationProviderWechatPay 表示微信支付提供方。
|
||||
IntegrationProviderWechatPay = "wechat_pay"
|
||||
// IntegrationProviderAlipay 表示支付宝提供方。
|
||||
IntegrationProviderAlipay = "alipay"
|
||||
// IntegrationOperationPaymentPreCreate 表示扫码支付预下单。
|
||||
IntegrationOperationPaymentPreCreate = "payment_precreate"
|
||||
// IntegrationOperationPaymentQuery 表示支付订单查询。
|
||||
IntegrationOperationPaymentQuery = "payment_query"
|
||||
// IntegrationOperationPaymentCallback 表示支付渠道异步回调。
|
||||
IntegrationOperationPaymentCallback = "payment_callback"
|
||||
// IntegrationResourceTypeAgentRechargePayment 表示代理充值支付单资源。
|
||||
IntegrationResourceTypeAgentRechargePayment = "agent_recharge_payment"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
28
pkg/constants/payment.go
Normal file
28
pkg/constants/payment.go
Normal file
@@ -0,0 +1,28 @@
|
||||
package constants
|
||||
|
||||
const (
|
||||
// PaymentRecordStatusPending 表示支付单待支付。
|
||||
PaymentRecordStatusPending = 0
|
||||
// PaymentRecordStatusPaid 表示支付单已支付。
|
||||
PaymentRecordStatusPaid = 1
|
||||
// PaymentRecordStatusFailed 表示支付单已失败。
|
||||
PaymentRecordStatusFailed = 2
|
||||
// PaymentRecordStatusRefunded 表示支付单已退款。
|
||||
PaymentRecordStatusRefunded = 3
|
||||
)
|
||||
|
||||
// GetPaymentRecordStatusName 返回支付单状态中文名称。
|
||||
func GetPaymentRecordStatusName(status int) string {
|
||||
switch status {
|
||||
case PaymentRecordStatusPending:
|
||||
return "待支付"
|
||||
case PaymentRecordStatusPaid:
|
||||
return "已支付"
|
||||
case PaymentRecordStatusFailed:
|
||||
return "已失败"
|
||||
case PaymentRecordStatusRefunded:
|
||||
return "已退款"
|
||||
default:
|
||||
return "未知"
|
||||
}
|
||||
}
|
||||
@@ -80,8 +80,9 @@ const (
|
||||
|
||||
// 代理充值金额限制(单位:分)
|
||||
const (
|
||||
AgentRechargeMinAmount = 1 // 最小充值金额(1分)
|
||||
AgentRechargeMaxAmount = 100000000 // 最大充值金额(1000000元)
|
||||
AgentRechargeMinAmount = 1 // 线下最小充值金额(1分)
|
||||
AgentOnlineRechargeMinAmount = 10000 // 在线扫码最小充值金额(100元)
|
||||
AgentRechargeMaxAmount = 100000000 // 最大充值金额(1000000元)
|
||||
)
|
||||
|
||||
// ========== 资产钱包常量 ==========
|
||||
|
||||
@@ -53,7 +53,7 @@ func BuildDocHandlers() *bootstrap.Handlers {
|
||||
ShopSeriesGrant: admin.NewShopSeriesGrantHandler(nil),
|
||||
AdminOrder: admin.NewOrderHandler(nil, nil),
|
||||
AdminExchange: admin.NewExchangeHandler(nil, nil, nil),
|
||||
PaymentCallback: callback.NewPaymentHandler(nil, nil, nil, nil, nil, nil, nil, nil),
|
||||
PaymentCallback: callback.NewPaymentHandler(nil, nil, nil, nil, nil, nil, nil, nil, nil, nil),
|
||||
CTCCRealnameCallback: callback.NewCTCCRealnameHandler(nil, nil, nil, nil, nil, nil, nil),
|
||||
CMCCRealnameCallback: callback.NewCMCCRealnameHandler(nil, nil, nil, nil, nil, nil, nil),
|
||||
CUCCRealnameCallback: callback.NewCUCCRealnameHandler(nil, nil, nil, nil, nil, nil, nil),
|
||||
|
||||
@@ -239,9 +239,10 @@ type V2CallbackResult struct {
|
||||
OutTradeNo string
|
||||
TransactionID string
|
||||
// TradeState 为 "SUCCESS" 表示支付成功(return_code 和 result_code 均为 SUCCESS)
|
||||
TradeState string
|
||||
TotalFee string
|
||||
OpenID string
|
||||
TradeState string
|
||||
TotalFee string
|
||||
OpenID string
|
||||
SuccessTime string
|
||||
}
|
||||
|
||||
// VerifyCallback 解析并验证 v2 回调 XML,返回解析结果
|
||||
@@ -292,5 +293,6 @@ func (s *PaymentV2Service) VerifyCallback(body []byte) (*V2CallbackResult, error
|
||||
TradeState: tradeState,
|
||||
TotalFee: notify.TotalFee,
|
||||
OpenID: notify.OpenID,
|
||||
SuccessTime: notify.TimeEnd,
|
||||
}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user