wanghuidong 5 жил өмнө
parent
commit
747cffabf6
3 өөрчлөгдсөн 45 нэмэгдсэн , 10 устгасан
  1. 3 0
      main.go
  2. 6 0
      rpc/rpc.go
  3. 36 10
      weixin/muxEventHandle.go

+ 3 - 0
main.go

@@ -21,6 +21,9 @@ func main() {
 	// mux := New("my-token", "", "")
 	weixin.Mux = weixin.New(weixin.WxConfig.Token, weixin.WxConfig.AppId, weixin.WxConfig.Secret)
 	weixin.Mux.HandleFunc(weixin.MsgTypeEventSubscribe, weixin.SubscribeHandler)
+	weixin.Mux.HandleFunc(weixin.MsgTypeEventUnsubscribe, weixin.UnSubscribeHandler)
+	weixin.Mux.HandleFunc(weixin.EventScan, weixin.ScanHandler)
+	weixin.Mux.HandleFunc(weixin.MsgTypeText, weixin.MsgTextHandler)
 	/*mux.HandleFunc(weixin.MsgTypeText,MsgTextHandler)
 	mux.HandleFunc(MsgTypeImage, ImageMsgHandler)
 	mux.HandleFunc(MsgTypeEventSubscribe, SubscribeHandler)

+ 6 - 0
rpc/rpc.go

@@ -105,6 +105,12 @@ func (wxRPC *WeiXinRpc) CreateMenu(menu *weixin.Menu, ret *Result) (err error) {
 	return
 }
 
+func (wxRPC *WeiXinRpc) PostTxtMsg(postInfo map[string]string, ret *Result) (err error) {
+	err = wxRPC.wx.PostText(postInfo["openid"], postInfo["content"])
+	log.Println("wxRPC ReplyTxtMsg:", err)
+	return
+}
+
 var listen net.Listener
 
 func StartWeiXinRpc(wx *weixin.Weixin) {

+ 36 - 10
weixin/muxEventHandle.go

@@ -5,12 +5,31 @@ import (
 	"net/rpc"
 )
 
-type WxRpcCallbackEntity struct {
-	W ResponseWriter
-	R *Request
+func SubscribeHandler(w ResponseWriter, r *Request) {
+	client, err := rpc.DialHTTP("tcp", WxConfig.BusinessRpc)
+	defer client.Close()
+	if err != nil {
+		log.Println(err.Error())
+		return
+	}
+	var repl string
+	err = client.Call("BusinessRpc.SubscribeCallback", r, &repl)
+	log.Println("关注事件业务rpc调用返回值:", repl)
 }
 
-func SubscribeHandler(w ResponseWriter, r *Request) {
+func UnSubscribeHandler(w ResponseWriter, r *Request) {
+	client, err := rpc.DialHTTP("tcp", WxConfig.BusinessRpc)
+	defer client.Close()
+	if err != nil {
+		log.Println(err.Error())
+		return
+	}
+	var repl string
+	err = client.Call("BusinessRpc.UnSubscribeCallback", r, &repl)
+	log.Println("取关事件业务rpc调用返回值:", repl)
+}
+
+func ScanHandler(w ResponseWriter, r *Request) {
 	client, err := rpc.DialHTTP("tcp", WxConfig.BusinessRpc)
 	defer client.Close()
 	if err != nil {
@@ -18,11 +37,18 @@ func SubscribeHandler(w ResponseWriter, r *Request) {
 		return
 	}
 	var repl string
-	var callBackEntity = &WxRpcCallbackEntity{
-		W: w,
-		R: r,
+	err = client.Call("BusinessRpc.ScanCallback", r, &repl)
+	log.Println("取关事件业务rpc调用返回值:", repl)
+}
+
+func MsgTextHandler(w ResponseWriter, r *Request) {
+	client, err := rpc.DialHTTP("tcp", WxConfig.BusinessRpc)
+	defer client.Close()
+	if err != nil {
+		log.Println(err.Error())
+		return
 	}
-	err = client.Call("BusinessRpc.SubscribeCallback", callBackEntity, &repl)
-	log.Println("业务rpc调用错误信息:", err)
-	log.Println("业务rpc调用返回值:", repl)
+	var repl string
+	err = client.Call("BusinessRpc.MsgTxtCallback", r, &repl)
+	log.Println("文本信息事件业务rpc调用返回值:", repl)
 }