| switch r.Method { | switch r.Method { | ||||
| case "POST": | case "POST": | ||||
| answerWechatPost(w, r) | |||||
| answerWechatPostEcho(w, r) | |||||
| //answerWechatPost(w, r) | |||||
| case "GET": | case "GET": | ||||
| answerInitialAuth(w, r) | answerInitialAuth(w, r) | ||||
| default: | default: | ||||
| return | return | ||||
| } | } | ||||
| func answerWechatPostEcho(w http.ResponseWriter, r *http.Request) { | |||||
| body, _ := ioutil.ReadAll(r.Body) | |||||
| //fmt.Printf("get body: %s", string(body)) | |||||
| s := ReadEncryptedMsg(string(body)) | |||||
| //fmt.Printf("to decrypt %s", s.Encrypt) | |||||
| d := Decode(s.Encrypt) | |||||
| fmt.Printf("echo as: \n%s", d) | |||||
| e := strings.Replace(d, "ToUserName", "FDDD20170506xyzunique", 2) | |||||
| f := strings.Replace(e, "FromUserName", "ToUserName", 2) | |||||
| g := strings.Replace(f, "FDDD20170506xyzunique", "FromUserName", 2) | |||||
| fmt.Fprint(w, g) | |||||
| } | |||||
| // | // | ||||
| func checkSignature(r *http.Request) bool { | func checkSignature(r *http.Request) bool { | ||||
| rq := r.URL.RawQuery | rq := r.URL.RawQuery |