找回密码
 立即注册

扫一扫,访问微社区

查看: 4360|回复: 2

[小游戏开发]小游戏用户登录态签名开放能力开发教程

[复制链接]

910

主题

1190

回帖

3万

金钱

管理员

论坛管理员

积分
0

突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2018-1-24 13:53:26 | 显示全部楼层 |阅读模式
微信小游戏用户登录态签名
微信小游戏的一部分后台(HTTP)接口要求验证用户登录态。开发者在调用时需提供以session_key为密钥生成的签名。其中session_key是指通过wx.login 获得的登录态。
签名算法
目前支持的签名算法是 hmac_sha256。 对于POST请求,开发者生成签名的算法是:
[mw_shl_code=applescript,true]signature = hmac_sha256( post_data, session_key )[/mw_shl_code]
其中post_data为本次POST请求的数据包。特别地,对于GET请求,post_data等于长度为0的字符串。
[mw_shl_code=applescript,true]signature = hmac_sha256( "", session_key )[/mw_shl_code]
签名示例
例如开发者需要请求的HTTP(POST)接口,其中请求包为一个json字符串。
[mw_shl_code=applescript,true]curl -d '{"foo":"bar"}' 'https://api.weixin.qq.com/some_api?access_token=xxx&openid=xxx&signature=???&sig_method=hmac_sha256'[/mw_shl_code]
开发者需要计算出signature参数。假设用户当前有效的session_key 为 :
[mw_shl_code=applescript,true]'o0q0otL8aEzpcZL/FT9WsQ=='[/mw_shl_code]
则开发者生成签名应该是
[mw_shl_code=applescript,true]hmac_sha256('{"foo":"bar"}', 'o0q0otL8aEzpcZL/FT9WsQ==') = 654571f79995b2ce1e149e53c0a33dc39c0a74090db514261454e8dbe432aa0b[/mw_shl_code]
开发者服务器发起的HTTP请求
[mw_shl_code=applescript,true]curl -d '{"foo":"bar"}' 'https://api.weixin.qq.com/some_api?access_token=xxx&openid=xxx&signature=654571f79995b2ce1e149e53c0a33dc39c0a74090db514261454e8dbe432aa0b&sig_method=hmac_sha256'[/mw_shl_code]
session_key 合法性校验
我们提供接口供开发者校验服务器所保存的登录态session_key是否合法。 为了保持session_key私密性,我们提供的校验接口本身不直接明文session_key,而是通过校验登录态签名完成。
接口地址
请求方法:GET
[mw_shl_code=applescript,true]https://api.weixin.qq.com/wxa/checksession?access\_token=ACCESS\_TOKEN&signature=SIGNATURE&openid=OPENID&sig\_method=SIG\_METHOD[/mw_shl_code]
调用示例[mw_shl_code=applescript,true]curl -G 'https://api.weixin.qq.com/wxa/checksession?access_token=OsAoOMw4niuuVbfSxxxxxxxxxxxxxxxxxxx&signature=fefce01bfba4670c85b228e6ca2b493c90971e7c442f54fc448662eb7cd72509&openid=oGZUI0egBJY1zhBYw2KhdUfwVJJE&sig_method=hmac_sha256'[/mw_shl_code]
参数说明
参数
必填
说明
access_token 接口调用凭证
openid 用户唯一标识符
signature 用户登录态签名
sig_method 用户登录态签名的哈希方法
buffer 托管数据,类型为字符串,长度不超过1000字节

返回结果
正确时的返回JSON数据包如下:
[mw_shl_code=applescript,true]{"errcode":0,"errmsg":"ok"}[/mw_shl_code]
错误时的返回JSON数据包如下(示例为签名错误):
[mw_shl_code=applescript,true]{"errcode":87009,"errmsg":"invalid signature"}[/mw_shl_code]

0

主题

222

回帖

509

金钱

新人求带

积分
0
发表于 2020-4-12 15:53:27 | 显示全部楼层
我有流量,寻求个人游戏开发者合作,有意者联系微信号jim20180688
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|微信小程序开发|教程|文档|资源汇总_即速论坛 ( 粤ICP备14097199号-1  

GMT+8, 2024-4-27 07:44 , Processed in 0.117864 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表