func ReceiveScanEvent(content string) string { var this ScanEvent fmt.Println(content) err := xml.Unmarshal([]byte(content), &this) if err != nil { return "" } data := "请联系系统管理员进行身份认证" if "101" == this.EventKey && "oecJ3jhN5usPBQMIXqc9bVP0toi4" == this.Ticket { data = "吼吼吼" var redcli redis.Client redcli.Addr = beego.AppConfig.String("redis_addr") redcli.Hset(this.Ticket, "scan", []byte("true")) } fmt.Println(data) rcontent := `<xml> <ToUserName><![CDATA[` + this.FromUserName + `]]></ToUserName> <FromUserName><![CDATA[` + this.ToUserName + `]]></FromUserName> <CreateTime>` + fmt.Sprint((time.Now().Unix())) + `</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[` + data + `]]></Content> </xml>` return rcontent }
func GetTempTicket(expire_seconds int, scene_id int, scene_str string) string { url := `https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=` + GetAccessToken() data := `{"expire_seconds": ` + strconv.Itoa(expire_seconds) + `, "action_name": "QR_SCENE", ` + `"action_info": {"scene": {"scene_id": ` + strconv.Itoa(scene_id) + `,"scene_str":"` + scene_str + `"}}}` if ticket := getTicket(url, data); len(ticket) < 1 { return "" } else { var redcli redis.Client redcli.Addr = beego.AppConfig.String("redis_addr") redcli.Hset(ticket, "scene_id", []byte(strconv.Itoa(scene_id))) redcli.Expire(ticket, 120) return ticket } }