Files
go_win_template/internal/plugins/payment_impl.go
Geliebte 1ea8c9da9c feat: 初始化 Wails + React + Go 桌面应用模板
- Wails v2.16.0 + React 19 + TypeScript + Vite 7
- 插件系统(build tag 控制编译,plugin.json 运行时配置)
- 支付插件(授权、账号、订单、退款、账单)
- 高并发基础设施(任务池、批量处理器、限流器、环形缓冲、管道)
- Windows 系统托盘(Win32 API)
- CodeGraph 索引 + .memory 记忆包
- 默认图标 assets/icon.png
2026-09-17 19:31:17 +08:00

55 lines
1.5 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 plugins — payment 插件实现(带 build tag,未启用时不编译)
//go:build payment
package plugins
import (
"context"
"fmt"
"go_win_template/internal/payment"
)
// paymentPluginImpl 支付插件
type paymentPluginImpl struct {
enabled bool
svc *payment.Service
}
func (p *paymentPluginImpl) Name() string { return "payment" }
func (p *paymentPluginImpl) Enabled() bool { return p.enabled }
func (p *paymentPluginImpl) Init(ctx context.Context) error {
cfg, _ := LoadOrDefault()
pcfg := payment.Config{
AppID: getStringParam(cfg, "payment", "app_id"),
MchID: getStringParam(cfg, "payment", "mch_id"),
APIKey: getStringParam(cfg, "payment", "api_key"),
BaseURL: getStringParam(cfg, "payment", "base_url"),
AutoRefreshToken: true,
}
p.svc = payment.NewService(pcfg)
fmt.Printf("[payment] initialized, base_url=%s\n", pcfg.BaseURL)
return nil
}
func (p *paymentPluginImpl) Register(app *App) error { return nil }
func (p *paymentPluginImpl) Shutdown() error { return nil }
// GetPaymentService 返回支付服务(any 类型,供 App 层类型断言)
func (p *paymentPluginImpl) GetPaymentService() any {
return p.svc
}
func init() {
cfg, _ := LoadOrDefault()
Register(&paymentPluginImpl{enabled: cfg.Plugins["payment"].Enabled})
}
func getStringParam(cfg *Config, plugin, key string) string {
if opts, ok := cfg.Plugins[plugin]; ok {
if v, ok := opts.Params[key].(string); ok {
return v
}
}
return ""
}