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

本文我将分享给大家关于微信小游戏推送的一些接入开发经验,首先微信小游戏的消息推送是他们开放平台推出的 一种主动推送服务,基于该推送服务,开发者及时获取开放平台相关信息,无需调用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))
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值