消息解密

消息解密

初始化实例

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

EncodingAESKey(消息加密密钥)。

// 回调配置
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请求,来确保服务器配置正确,能够正常处理微信消息。

// 回调配置
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告诉我们。

消息类型

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

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

使用示例

参考: PowerWechatTutorial