消息解密
初始化实例
在使用小程序消息解密之前,请先参考微信消息推送,你需要配置好URL(服务器地址)
、Token(令牌)
、
EncodingAESKey(消息加密密钥)
。
go
// 回调配置
func CallbackVerify(c *gin.Context) {
rs, err := services.MiniProgramApp.Server.VerifyURL(c.Request)
if err != nil {
panic(err)
}
// 选择1
//text, _ := ioutil.ReadAll(rs.Body)
//c.String(http.StatusOK, string(text))
// 选择2
rs.Send(c.Writer)
}
处理微信Token验证请求
在配置完成保存的时候,微信会发送一条HTTP GET请求,来确保服务器配置正确,能够正常处理微信消息。
go
// 回调配置
func CallbackNotify(c *gin.Context) {
rs, err := services.MiniProgramApp.Server.Notify(c.Request, func(event contract.EventInterface) interface{} {
fmt.Dump("event", event)
switch event.GetMsgType() {
case models2.CALLBACK_MSG_TYPE_TEXT:
msg := models.MessageText{}
err := event.ReadMessage(&msg)
if err != nil {
println(err.Error())
return "error"
}
fmt.Dump(msg)
}
return kernel.SUCCESS_EMPTY_RESPONSE
})
if err != nil {
panic(err)
}
err = rs.Send(c.Writer)
if err != nil {
panic(err)
}
}
接收消息推送
TIP
为了让消息推送内容格式支持强类型,避免我们在开发过程中反复找微信官方文档确认。PowerWeChat这边在尝试枚举微信的全部消息类型以及字段,如果微信消息类型有新增或者变更而PowerWeChat还没来得及同步更新,欢迎在Github上面提交PR或者是提交issue告诉我们。
go
消息类型
以下是已经支持的枚举类型:
未来准备支持的枚举类型: