欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 微信小游戏推送(小游戏礼包功能)服务器端接入开发经验总结

微信小游戏推送(小游戏礼包功能)服务器端接入开发经验总结

2025/3/9 23:19:49 来源:https://blog.csdn.net/pbymw8iwm/article/details/139648258  浏览:    关键词:微信小游戏推送(小游戏礼包功能)服务器端接入开发经验总结

本文我将分享给大家关于微信小游戏推送的一些接入开发经验,首先微信小游戏的消息推送是他们开放平台推出的 一种主动推送服务,基于该推送服务,开发者及时获取开放平台相关信息,无需调用API。 这里我给大家分享下开发者服务器接收消息推送的经验。

    1. 如何接入接入消息推送功能(go语言代码实现)

    2. 使用安全模式接受微信消息推送并返回消息(go语言代码实现)

这里我就以小游戏礼包的这种推送方式来举例,其他的消息推送大同小异,你只需要修改包体的格式即可。 有任何疑问都可以在文章下方留言交流。

小游戏礼包

功能介绍

小游戏开发者的游戏内道具,可通过接入平台「礼包系统」,在微信平台各场景发放游戏礼包。 发放场景包括:游戏圈、活动运营工具、发现-游戏-福利中心、广告、搜索等

道具礼包发货基于微信小游戏统一的消息推送能力,因此在使用礼包中心的发货回调时,需要开发者服务器处理好消息推送的协议。 注意:MP配置消息回调地址只有1个,所有消息推送场景都会使用该通道,所以需要先根据MsgType与Event来判断消息类型,进行相应的处理。

下面是发送和返回的格式:

 更多详情可以查看文档: 小游戏礼包 | 微信开放文档

开发者服务器接收消息推送

接下来我们着重讲下小游戏安全模式下的数据链路:

消息推送服务器配置

消息推送服务于小程序、公众号、小游戏、视频号小店、第三方平台,这里介绍小程序平台的配置

填写相关信息

登陆小程序管理后台,在「开发」-「开发管理」-「消息推送配置」中,需填写以下信息:

  1. URL服务器地址:开发者用来接收微信消息和事件的接口 URL,必须以 http:// 或 https:// 开头,分别支持 80 端口和 443 端口。
  2. Token令牌:用于签名处理,下文会介绍相关流程。
  3. EncodingAESKey:将用作消息体加解密密钥。
  4. 消息加解密方式:
    • 明文模式:不使用消息加解密,明文发送,安全系数较低,不建议使用。
    • 兼容模式:明文、密文共存,不建议使用。
    • 安全模式:使用消息加解密,纯密文,安全系数高,强烈推荐使用。
  5. 数据格式:消息体的格式,可选XML或JSON。

 发起验证的工具大家可以使用 微信调试工具

验证逻辑go代码实现

其中,signature签名的生成方式是:

  1. 将Token、timestamp、nonce三个参数进行字典序排序。
  2. 将三个参数字符串拼接成一个字符串进行sha1计算签名,即可获得signature。 开发者需要校验signature是否正确,以判断请求是否来自微信服务器,验签通过后,请原样返回echostr字符串。 

验证接口的核心逻辑如下:

func (c *ThirdPartyServiceController) WechatVerify() {keys := make([]string, 0)keys = append(keys, c.GetString("timestamp"))keys = append(keys, c.GetString("nonce"))keys = append(keys, beego.AppConfig.String("miniwechat_token")) //配置文件提前配置好小游戏的token,从小游戏后台可以获取sort.Strings(keys)signstr := keys[0] + keys[1] + keys[2]mysign := Sha1Signature(signstr)sign := c.GetString("signature") if sign == mysign {c.Ctx.WriteString(c.GetString("echostr"))return}c.Ctx.WriteString(c.GetString("echostr"))
}

 签名函数实现如下:

func Sha1Signature(text string) string {hash := sha1.New()hash.Write([]byte(text))return fmt.Sprintf("%x", hash.Sum(nil))
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词