消息解密

初始化实例

在使用小程序消息解密之前,请先参考微信消息推送,你需要配置好URL(服务器地址)Token(令牌)

EncodingAESKey(消息加密密钥)

  1. // 回调配置
  2. func CallbackVerify(c *gin.Context) {
  3. rs, err := services.MiniProgramApp.Server.VerifyURL(c.Request)
  4. if err != nil {
  5. panic(err)
  6. }
  7. // 选择1
  8. //text, _ := ioutil.ReadAll(rs.Body)
  9. //c.String(http.StatusOK, string(text))
  10. // 选择2
  11. rs.Send(c.Writer)
  12. }

处理微信Token验证请求

在配置完成保存的时候,微信会发送一条HTTP GET请求,来确保服务器配置正确,能够正常处理微信消息。

  1. // 回调配置
  2. func CallbackNotify(c *gin.Context) {
  3. rs, err := services.MiniProgramApp.Server.Notify(c.Request, func(event contract.EventInterface) interface{} {
  4. fmt.Dump("event", event)
  5. switch event.GetMsgType() {
  6. case models2.CALLBACK_MSG_TYPE_TEXT:
  7. msg := models.MessageText{}
  8. err := event.ReadMessage(&msg)
  9. if err != nil {
  10. println(err.Error())
  11. return "error"
  12. }
  13. fmt.Dump(msg)
  14. }
  15. return kernel.SUCCESS_EMPTY_RESPONSE
  16. })
  17. if err != nil {
  18. panic(err)
  19. }
  20. err = rs.Send(c.Writer)
  21. if err != nil {
  22. panic(err)
  23. }
  24. }

接收消息推送

TIP

为了让消息推送内容格式支持强类型,避免我们在开发过程中反复找微信官方文档确认。PowerWeChat这边在尝试枚举微信的全部消息类型以及字段,如果微信消息类型有新增或者变更而PowerWeChat还没来得及同步更新,欢迎在Github上面提交PR或者是提交issue告诉我们。

消息类型

以下是已经支持的枚举类型:

未来准备支持的枚举类型:

使用示例

参考: PowerWechatTutorial