97 lines
2.7 KiB
Go
97 lines
2.7 KiB
Go
|
/**
|
|||
|
微信参数设置
|
|||
|
*/
|
|||
|
|
|||
|
package setting
|
|||
|
|
|||
|
import (
|
|||
|
"code.gitea.io/gitea/modules/log"
|
|||
|
"github.com/ArtisanCloud/PowerWeChat/v3/src/kernel"
|
|||
|
wechat_sdk "github.com/ArtisanCloud/PowerWeChat/v3/src/officialAccount"
|
|||
|
)
|
|||
|
|
|||
|
var Wechat = struct {
|
|||
|
Enabled bool
|
|||
|
DefaultDomainName string
|
|||
|
UserConfig WechatUserConfigType
|
|||
|
TempQrExpireSeconds int
|
|||
|
SDK *wechat_sdk.OfficialAccount
|
|||
|
cache kernel.CacheInterface
|
|||
|
|
|||
|
// 注册过期时间
|
|||
|
RegisterationExpireSeconds int
|
|||
|
}{}
|
|||
|
|
|||
|
type WechatUserConfigType struct {
|
|||
|
AppID string
|
|||
|
AppSecret string
|
|||
|
RedisAddr string
|
|||
|
MessageToken string
|
|||
|
MessageAesKey string
|
|||
|
}
|
|||
|
|
|||
|
// loadWechatSettingsFrom
|
|||
|
/**
|
|||
|
* 创建PowerWechat全局工具类实例
|
|||
|
* 配置文件: custom/conf/app.ini
|
|||
|
*/
|
|||
|
func loadWechatSettingsFrom(rootCfg ConfigProvider) {
|
|||
|
sec := rootCfg.Section("wechat")
|
|||
|
Wechat.Enabled = sec.Key("ENABLED_WECHAT_QR_SIGNIN").MustBool(true)
|
|||
|
log.Info("ENABLED_WECHAT_QR_SIGNIN == '%b'", Wechat.Enabled)
|
|||
|
Wechat.DefaultDomainName = sec.Key("WECHAT_QR_SERVICE_DOMAIN_NAME").MustString("devstar.cn")
|
|||
|
|
|||
|
Wechat.UserConfig.AppID = sec.Key("WECHAT_APP_ID").MustString("")
|
|||
|
Wechat.UserConfig.AppSecret = sec.Key("WECHAT_APP_SECRET").MustString("")
|
|||
|
Wechat.UserConfig.RedisAddr = sec.Key("WECHAT_REDIS_ADDR").MustString("")
|
|||
|
Wechat.UserConfig.MessageToken = sec.Key("WECHAT_MESSAGE_TOKEN").MustString("")
|
|||
|
Wechat.UserConfig.MessageAesKey = sec.Key("WECHAT_MESSAGE_AES_KEY").MustString("")
|
|||
|
if Wechat.UserConfig.AppID != "" && Wechat.UserConfig.AppSecret != "" {
|
|||
|
log.Info("createPowerWechatApp AppID:%s ", Wechat.UserConfig.AppID)
|
|||
|
createPowerWechatApp(Wechat.UserConfig)
|
|||
|
}
|
|||
|
|
|||
|
Wechat.TempQrExpireSeconds = sec.Key("WECHAT_TEMP_QR_EXPIRE_SECONDS").MustInt(60)
|
|||
|
// 扫码后,最长注册时间:默认24小时
|
|||
|
Wechat.RegisterationExpireSeconds = sec.Key("WECHAT_REGISTERATION_EXPIRE_SECONDS").MustInt(86400)
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 创建微信公众号工具类
|
|||
|
*
|
|||
|
* @param userConfig 微信公众号配置信息, 详见 `custom/conf/app.ini`
|
|||
|
* @return PowerWechat app 实例.
|
|||
|
*/
|
|||
|
func createPowerWechatApp(userConfig WechatUserConfigType) {
|
|||
|
|
|||
|
if userConfig.RedisAddr != "" {
|
|||
|
Wechat.cache = kernel.NewRedisClient(&kernel.UniversalOptions{
|
|||
|
Addrs: []string{userConfig.RedisAddr},
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
var err error
|
|||
|
|
|||
|
Wechat.SDK, err = wechat_sdk.NewOfficialAccount(&wechat_sdk.UserConfig{
|
|||
|
|
|||
|
AppID: userConfig.AppID,
|
|||
|
Secret: userConfig.AppSecret,
|
|||
|
|
|||
|
Token: userConfig.MessageToken,
|
|||
|
AESKey: userConfig.MessageAesKey,
|
|||
|
|
|||
|
Log: wechat_sdk.Log{
|
|||
|
Level: "error",
|
|||
|
File: "./wechat-error.log",
|
|||
|
},
|
|||
|
|
|||
|
HttpDebug: false,
|
|||
|
Debug: false,
|
|||
|
Cache: Wechat.cache,
|
|||
|
// Sandbox: true,
|
|||
|
})
|
|||
|
if err != nil {
|
|||
|
log.Warn("创建微信工具类 PowerWechat 失败,请检查 modules/setting/wechat.go ")
|
|||
|
}
|
|||
|
}
|