first commit
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package wxrouter
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"xiawan/wx/clientsdk"
|
||||
"xiawan/wx/protobuf/wechat"
|
||||
"xiawan/wx/srv/wxcore"
|
||||
"xiawan/wx/srv/wxface"
|
||||
)
|
||||
|
||||
// WXGetQrcodeRouter 获取个人/群二维码响应
|
||||
type WXGetQrcodeRouter struct {
|
||||
wxcore.WXBaseRouter
|
||||
}
|
||||
|
||||
// Handle 处理conn业务的方法
|
||||
func (hbr *WXGetQrcodeRouter) Handle(wxResp wxface.IWXResponse) error {
|
||||
defer wxcore.TryE("WXGetQrcodeRouter Handle")
|
||||
currentWXConn := wxResp.GetWXConncet()
|
||||
currentWXAccount := currentWXConn.GetWXAccount()
|
||||
currentUserInfo := currentWXAccount.GetUserInfo()
|
||||
|
||||
// 解析获取二维码响应包
|
||||
var getQrcodeResp wechat.GetQRCodeResponse
|
||||
err := clientsdk.ParseResponseData(currentUserInfo, wxResp.GetPackHeader(), &getQrcodeResp)
|
||||
if err != nil {
|
||||
// 请求出问题了,判断是否掉线,并重连
|
||||
time.Sleep(1 * time.Second)
|
||||
go currentWXConn.CheckOnLineStatusLogin()
|
||||
return err
|
||||
}
|
||||
|
||||
// 如果获取失败
|
||||
if getQrcodeResp.GetBaseResponse().GetRet() != 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 判断是否是群聊
|
||||
tmpUserName := string(wxResp.GetPackHeader().ReqData)
|
||||
if !strings.HasSuffix(tmpUserName, "@chatroom") {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 保存群二维码
|
||||
retList := strings.Split(tmpUserName, "@")
|
||||
qrcodeFileName := retList[0] + ".png"
|
||||
currentWXConn.AddGroupQrcodeData(getQrcodeResp.Qrcode.GetBuffer(), qrcodeFileName)
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user