Skip to content

消息解密

初始化实例

在使用小程序消息解密之前,请先参考微信消息推送,你需要配置好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

消息类型

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

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

使用示例

参考: PowerWechatTutorial

Released under the MIT license