这个不是全部的代码哦,只是一个演示可以验证跟接受post传过来的消息并且能返回消息,中间的回复逻辑就待需要各位同志们自己写了哈
复制代码 代码如下:
/*
*@go语言实现公众平台
*/
package main
import (
"crypto/sha1"
"encoding/xml"
"fmt"
"io"
"io/ioutil"
"log"
"net/http"
"sort"
"strings"
"time"
)
type Request struct {
ToUserName string
FromUserName string
CreateTime time.Duration
MsgType string
Content string
MsgId int
}
type Response struct {
ToUserName string `xml:"xml>ToUserName"`
FromUserName string `xml:"xml>FromUserName"`
CreateTime string `xml:"xml>CreateTime"`
MsgType string `xml:"xml>MsgType"`
Content string `xml:"xml>Content"`
MsgId int `xml:"xml>MsgId"`
}
func str2sha1(data string) string {
t := sha1.New()
io.WriteString(t, data)
return fmt.Sprintf("%x", t.Sum(nil))
}
func action(w http.ResponseWriter, r *http.Request) {
postedMsg, err := ioutil.ReadAll(r.Body)
if err != nil {
log.Fatal(err)
}
r.Body.Close()
v := Request{}
xml.Unmarshal(postedMsg, &v)
if v.MsgType == "text" {
v := Request{v.ToUserName, v.FromUserName, v.CreateTime, v.MsgType, v.Content, v.MsgId}
output, err := xml.MarshalIndent(v, " ", " ")
if err != nil {
fmt.Printf("error:%v\n", err)
}
fmt.Fprintf(w, string(output))
} else if v.MsgType == "event" {
Content := `"欢迎关注
我的微信"`
v := Request{v.ToUserName, v.FromUserName, v.CreateTime, v.MsgType, Content, v.MsgId}
output, err := xml.MarshalIndent(v, " ", " ")
if err != nil {
fmt.Printf("error:%v\n", err)
}
fmt.Fprintf(w, string(output))
}
}
func checkSignature(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
var token string = "你的token"
var signature string = strings.Join(r.Form["signature"], "")
var timestamp string = strings.Join(r.Form["timestamp"], "")
var nonce string = strings.Join(r.Form["nonce"], "")
var echostr string = strings.Join(r.Form["echostr"], "")
tmps := []string{token, timestamp, nonce}
sort.Strings(tmps)
tmpStr := tmps[0] + tmps[1] + tmps[2]
tmp := str2sha1(tmpStr)
if tmp == signature {
fmt.Fprintf(w, echostr)
}
}
func main() {
http.HandleFunc("/check", checkSignature)
http.HandleFunc("/", action)
http.ListenAndServe(":8080", nil)
}
Go语言,微信公众平台
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- dnf称号附魔
- 乌兰托娅.2024-《八月草儿飞HQ》头版限量编号[低速原抓WAV+CUE]
- 雷婷.2024-《寂寞烟火HQ》头版限量编号[低速原抓WAV+CUE]
- [ABC唱片]-《西电之声—人声》[HD-201][德国版HD]WAV+CUE
- dnf紧急任务怎么触发
- dnf紫牌能翻出什么
- 星穹铁道2.2上升的一切必将汇合怎么过 上升的一切必将汇合流程攻略
- [ABC唱片]-《西电之声—人声》[HD-201][德国版HD]WAV+CUE
- 【ABC唱片】《春花秋月古筝三重奏SACD》-WAV分轨
- [ABC唱片]-《邓丽君—永远的歌声(日语)》[K2-029][K2CD]WAV+CUE
- 吴牧野《强者独白II 李斯特巅峰作品选》[FLAC/分轨][286.41MB]
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 林俊杰《他是... JJ林俊杰》[FLAC][809M]
- dnf红眼110版本加点
- 星穹铁道2.2主线任务在我们的时代里全流程 崩铁2.2主线任务合集