123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package utils
-
- import (
- "github.com/zjxpcyc/wechat/mini"
- "github.com/zjxpcyc/wechat/wx"
- )
-
- var wxClients map[string]*wx.Client
- var miniClients map[string]*mini.Client
-
- type WechatUser struct {
- OpenID string `json:"openid"`
- NickName string `json:"nickname"`
- Sex float64 `json:"sex"`
- Province string `json:"province"`
- City string `json:"city"`
- Country string `json:"country"`
- HeadImgURL string `json:"headimgurl"`
- UnionID string `json:"unionid"`
- }
-
- // WxClientSingleton 初始化
- func WxClientSingleton(org string, cert map[string]string) {
- if wxClients == nil {
- wxClients = map[string]*wx.Client{
- org: wx.NewClient(cert),
- }
- } else {
- if _, ok := wxClients[org]; !ok {
- wxClients[org] = wx.NewClient(cert)
- }
- }
- }
-
- // MiniClientSingleton 初始化
- func MiniClientSingleton(org string, cert map[string]string) {
- if miniClients == nil {
- miniClients = map[string]*mini.Client{
- org: mini.NewClient(cert),
- }
- } else {
- if _, ok := miniClients[org]; !ok {
- miniClients[org] = mini.NewClient(cert)
- }
- }
- }
-
- // WxClientFor 微信客户端
- func WxClientFor(org string) *wx.Client {
- return wxClients[org]
- }
-
- // MiniClientFor 小程序客户端
- func MiniClientFor(org string) *mini.Client {
- return miniClients[org]
- }
-
- // GetWxAppID 获取微信ID
- func GetWxAppID(org string) string {
- return wxClients[org].GetAppID()
- }
-
- func WechatInit() {
- logger := GetDefaultLogger()
- wx.SetLogInst(logger)
- mini.SetLogInst(logger)
- }
-
- // MapToWechatUser 映射微信人员
- func MapToWechatUser(data map[string]interface{}) *WechatUser {
- subscribe, has := data["subscribe"]
- if has {
- if subscribe == nil {
- return nil
- }
-
- sub := subscribe.(float64)
- if sub == 0 {
- return nil
- }
- }
-
- user := WechatUser{
- OpenID: data["openid"].(string),
- }
-
- if data["sex"] != nil {
- user.Sex = data["sex"].(float64)
- }
-
- if data["nickname"] != nil {
- user.NickName = data["nickname"].(string)
- }
-
- if data["province"] != nil {
- user.Province = data["province"].(string)
- }
-
- if data["city"] != nil {
- user.City = data["city"].(string)
- }
-
- if data["country"] != nil {
- user.Country = data["country"].(string)
- }
-
- if data["headimgurl"] != nil {
- user.HeadImgURL = data["headimgurl"].(string)
- }
-
- if data["unionid"] != nil {
- user.UnionID = data["unionid"].(string)
- }
-
- return &user
- }
|