赞
踩
本文我将分享给大家关于微信小游戏推送的一些接入开发经验,首先微信小游戏的消息推送是他们开放平台推出的 一种主动推送服务,基于该推送服务,开发者及时获取开放平台相关信息,无需调用API。 这里我给大家分享下开发者服务器接收消息推送的经验。
1. 如何接入接入消息推送功能(go语言代码实现)
2. 使用安全模式接受微信消息推送并返回消息(go语言代码实现)
这里我就以小游戏礼包的这种推送方式来举例,其他的消息推送大同小异,你只需要修改包体的格式即可。 有任何疑问都可以在文章下方留言交流。
小游戏开发者的游戏内道具,可通过接入平台「礼包系统」,在微信平台各场景发放游戏礼包。 发放场景包括:游戏圈、活动运营工具、发现-游戏-福利中心、广告、搜索等
道具礼包发货基于微信小游戏统一的消息推送能力,因此在使用礼包中心的发货回调时,需要开发者服务器处理好消息推送的协议。 注意:MP配置消息回调地址只有1个,所有消息推送场景都会使用该通道,所以需要先根据MsgType与Event来判断消息类型,进行相应的处理。
下面是发送和返回的格式:
更多详情可以查看文档: 小游戏礼包 | 微信开放文档
接下来我们着重讲下小游戏安全模式下的数据链路:
消息推送服务于小程序、公众号、小游戏、视频号小店、第三方平台,这里介绍小程序平台的配置
登陆小程序管理后台,在「开发」-「开发管理」-「消息推送配置」中,需填写以下信息:
发起验证的工具大家可以使用 微信调试工具
其中,signature签名的生成方式是:
- 将Token、timestamp、nonce三个参数进行字典序排序。
- 将三个参数字符串拼接成一个字符串进行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))
- }
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。