diff --git a/app/hdl/hdl_wx.go b/app/hdl/hdl_wx.go index 44a3c72..9a7b99e 100644 --- a/app/hdl/hdl_wx.go +++ b/app/hdl/hdl_wx.go @@ -51,9 +51,9 @@ type WXMsg struct { MsgType string Content string MsgId int64 - Event string //事件类型,subscribe - EventKey string //事件KEY值,qrscene_为前缀,后面为二维码的参数值 - Ticket string //二维码的ticket,可用来换取二维码图片 + Event string // 事件类型,subscribe + EventKey string // 事件KEY值,qrscene_为前缀,后面为二维码的参数值 + Ticket string // 二维码的ticket,可用来换取二维码图片 } // WXTextMsg 微信文本消息结构体 @@ -68,31 +68,31 @@ type WXTextMsg struct { // WXEventForSubscribeMsg 扫描带参数二维码事件消息结构体(用户未关注时,进行关注后的事件推送) type WXEventForSubscribeMsg struct { - ToUserName string //开发者微信号 - FromUserName string //发送方帐号(一个OpenID) - CreateTime int64 //消息创建时间 (整型) - MsgType string //消息类型,event - Event string //事件类型,subscribe - EventKey string //事件KEY值,qrscene_为前缀,后面为二维码的参数值 - Ticket string //二维码的ticket,可用来换取二维码图片 + ToUserName string // 开发者微信号 + FromUserName string // 发送方帐号(一个OpenID) + CreateTime int64 // 消息创建时间 (整型) + MsgType string // 消息类型,event + Event string // 事件类型,subscribe + EventKey string // 事件KEY值,qrscene_为前缀,后面为二维码的参数值 + Ticket string // 二维码的ticket,可用来换取二维码图片 } // WXEventForScanMsg 扫描带参数二维码事件消息结构体(用户已关注时的事件推送) type WXEventForScanMsg struct { - ToUserName string //开发者微信号 - FromUserName string //发送方帐号(一个OpenID) - CreateTime int64 //消息创建时间 (整型) - MsgType string //消息类型,event - Event string //事件类型,subscribe - EventKey string //事件KEY值,是一个32位无符号整数,即创建二维码时的二维码scene_id - Ticket string //二维码的ticket,可用来换取二维码图片 + ToUserName string // 开发者微信号 + FromUserName string // 发送方帐号(一个OpenID) + CreateTime int64 // 消息创建时间 (整型) + MsgType string // 消息类型,event + Event string // 事件类型,subscribe + EventKey string // 事件KEY值,是一个32位无符号整数,即创建二维码时的二维码scene_id + Ticket string // 二维码的ticket,可用来换取二维码图片 } // WXMsgReceive 微信消息接收 func WXMsgReceive(c *gin.Context) { log.Printf("[消息接收] - 收到新消息") var msg WXMsg - err := c.ShouldBindXML(&msg) + err := c.ShouldBindJSON(&msg) if err != nil { log.Printf("[消息接收] - XML数据包解析失败: %v\n", err) return @@ -100,24 +100,24 @@ func WXMsgReceive(c *gin.Context) { utils.FilePutContents("WXMsgReceive", utils.SerializeStr(msg)) log.Printf("[消息接收] - 收到消息, 消息类型为: %s", msg.MsgType) if msg.MsgType == "event" { - //事件类型消息 + // 事件类型消息 eventMsg := msg log.Printf("[事件类型]-收到消息, 事件类型为: %s, 事件KEY值为: %s\n, 二维码的ticket值为: %s\n", eventMsg.Event, eventMsg.EventKey, eventMsg.Ticket) if eventMsg.Event == "subscribe" { - //用户未关注时,进行关注后的事件推送 + // 用户未关注时,进行关注后的事件推送 err := DealCallBack(eventMsg.FromUserName, eventMsg.EventKey) if err != nil { WXMsgReply(c, eventMsg.ToUserName, eventMsg.FromUserName, err.Error()) } } if eventMsg.Event == "SCAN" { - //用户已关注时的事件推送 + // 用户已关注时的事件推送 err := DealCallBack(eventMsg.FromUserName, eventMsg.EventKey) if err != nil { WXMsgReply(c, eventMsg.ToUserName, eventMsg.FromUserName, err.Error()) } } - if eventMsg.Event == "CLICK" { //公众号点击 + if eventMsg.Event == "CLICK" { // 公众号点击 if strings.Contains(strings.ToLower(eventMsg.EventKey), "official_account_custom_reply") { id := strings.ReplaceAll(strings.ToLower(eventMsg.EventKey), "official_account_custom_reply_", "") var mod model.SysModule @@ -145,7 +145,7 @@ func WXMsgReceive(c *gin.Context) { } } if msg.MsgType == "text" { - //文本类型消息 + // 文本类型消息 textMsg := msg log.Printf("[文本消息]-收到消息, 消息内容为: %s", textMsg.Content) WXMsgReply(c, textMsg.ToUserName, textMsg.FromUserName, textMsg.Content) @@ -182,7 +182,7 @@ func WXMsgReply(c *gin.Context, fromUser, toUser, content string) { } func DealCallBack(openId, ticket string) error { - //1、查找对应的二维码记录 + // 1、查找对应的二维码记录 qrcodeDb := db.QrcodeDb{} qrcodeDb.Set() qrcode, err := qrcodeDb.GetQrcodeByIndex(ticket) @@ -193,7 +193,7 @@ func DealCallBack(openId, ticket string) error { return errors.New("未查询到对应二维码记录") } - //2、查找当前二维码是否可用 + // 2、查找当前二维码是否可用 qrcodeWithBatchRecordsDb := db.QrcodeWithBatchRecordsDb{} qrcodeWithBatchRecordsDb.Set() qrcodeWithBatchRecord, err := qrcodeWithBatchRecordsDb.GetQrcodeWithBatchRecordsByQrcodeId(qrcode.Id) @@ -204,7 +204,7 @@ func DealCallBack(openId, ticket string) error { return errors.New("当前二维码不可使用!") } - //3、查找当前用户是否使用过当前二维码 + // 3、查找当前用户是否使用过当前二维码 userUseQrcodeRecordsDb := db.UserUseQrcodeRecordsDb{} userUseQrcodeRecordsDb.Set() @@ -216,8 +216,8 @@ func DealCallBack(openId, ticket string) error { return errors.New("请勿重复使用二维码!") } - //4、发送微信红包 - post, err := utils.CurlPost("http://pay.izhyin.com/wx/redPackage/index", utils.SerializeStr(map[string]string{ + // 4、发送微信红包 + post, err := utils.CurlPost("http://pay.zhios.cn/wx/redPackage/index", utils.SerializeStr(map[string]string{ "openid": openId, "amount": utils.Float64ToStr(utils.StrToFloat64(qrcodeWithBatchRecord.Amount) * 100), }), nil) @@ -256,21 +256,21 @@ func DealCallBack(openId, ticket string) error { return errors.New(data.ReturnMsg) } - //5、将当前二维码状态修改为“可用” + // 5、将当前二维码状态修改为“可用” qrcode.State = enum.QrcodeSateAllowUse _, err = qrcodeDb.BatchUpdateQrcode(qrcode, "state") if err != nil { return err } - //6、将当前二维码记录修改为“已使用” + // 6、将当前二维码记录修改为“已使用” qrcodeWithBatchRecord.State = enum.QrcodeWithBatchRecordsStateForAlready _, err = qrcodeWithBatchRecordsDb.UpdateQrcodeWithBatchRecord(qrcodeWithBatchRecord) if err != nil { return err } - //7、新增用户使用记录 + // 7、新增用户使用记录 _, err = userUseQrcodeRecordsDb.InsertUserUseQrcodeRecords(&model.UserUseQrcodeRecords{ UserWxOpenId: openId, RecordsId: qrcodeWithBatchRecord.Id,