UNITY3D对接QQGame(PC)开发教程(2022)

效果在这里插入图片描述
目标:能在UNITY3D里通过qqgame充值

因为目前还没有这类文章,所以填补这下块空白

文章包含
QQGame登录器的制作
QQGAME和UNITY3D的交互
QQGame平台用户信息的读取
支付规则,后台搭建。
和常见问题。

对接参考腾讯开发者有文档
https://docs.qq.com/doc/DYkRQZHBrckhRbXhk
但是它没有细分哪些才是Unity3d开发者需要的

第一步:如何在u3d里获取用户的信息,比如蓝钻等级

腾讯有http查询接口,需要传入用户 openid,和openkey,
这两个参数怎么得到呢?
通过QQ游戏大厅运行后,会把参数通过WebSocket 传给unity3d
具体可见PC_demo
https://open.qqgame.qq.com/wiki/24/35/53/55/55.html

我们需要通过大厅启动UNITY程序
制作启动器
首先启动的demohttps://open.qqgame.qq.com/wiki/24/35/53/234/234.html
在这里插入图片描述
通过win10 的任务管理器找到进程所在的目录
我们需要skin,config.init,launcher在这里插入图片描述
拷贝出来放到QQlauncher目录
在这里插入图片描述
打开config.ini
*配置我们自己的GameId,这个GameID是由平台的审核人员分配的,需要人工询问

用官方提供的压缩工具打包U3NITY的游戏目录
得到压缩包,自己上传到外网服务器,得到U3D游戏包下载地址

*[Launcher]
Url=http://下载地址.7z
Md5=7B94A0E894B855D9340174974D29D974(压缩包的MD5)
.在这里插入图片描述

打包启动器,得到qgi启动文件

用官方工具QgiMaker.exe,新版本目录选择刚才编辑的QQlauncher目录
用 QgiMaker
得到QQ专用的启动器文件,然后人工发给提审人员
在这里插入图片描述
等到他们提审后,就可以通过QQGAME启动自己的游戏了

测试阶段如何启动游戏?
打开QQGAME的同时,打开浏览器 输入 qqgameprotocol://enterapp appid=我的GAMEID

在这里插入图片描述
入口处终于看见了自己的游戏
注意需要自行在腾讯开放平台添加自己的QQ白名单,否则是看不到测试阶段的游戏

游戏启动后,我们就可以得到了自己的openid和openkey

为什么QQDemo没有给我们提供查询用户信息的接口呢?
因为查询需要用到appkey(重要,公开会有安全隐患),所以只能搭建一个PHP服务器作为跳板查询

U3D端
在这里插入图片描述

至于PHP后台怎么查询的,签名怎么校验的(头疼的部分),腾讯开发文档写了很多详细说明,并且也给出php的demo,避免开发者浪费太多时间去做接口调试
php_demo
https://open.qqgame.qq.com/wiki/24/35/53/54/54.html

如何让玩家购买付费道具

下图是站在U3D开发者视觉整理的图
在这里插入图片描述

在后端搭建完毕后,U3D客户端只需要发出购买请求,输入具体参数
客户端向PHP服务器请求,需要买什么
PHP收到客户端消息后向腾讯请求,得到回复后再转到给客户端
拿到物品token
在这里插入图片描述
客户端收到物品token后向QQ大厅发出消息即可
在这里插入图片描述
结果
在这里插入图片描述

以下是php服务器的部署过程

因为发货回调需要的通信上的契合(比如https,key和ctr信息等等)
所以要给服务器配置证书

下载证书

在这里插入图片描述

首先配置好发货地址
因为只支持HTTPS,所以需要下载腾讯给的证书

给nginx配置腾讯给的证书,开启https

在这里插入图片描述

它的作用是用户付费购买后,会请求这个URL
官方的web demo有案例,delivery_web.php
游戏后台回调发货逻辑,参考它可以避免很多签名验证的麻烦

收到发货成功后,修改玩家的数据库即可

腾讯不支持透传,如何做PHP发货处理过程

游戏服发货参数是:playerid,payId,serverid…
腾讯发货参数是:openid,payitem…
可以看得出,腾讯的接口并不能满足我们需要的参数

一般情况下
其他平台会让开发者透传参数,提供额外的发货参数
但是腾讯不支持
所以只能做接口兼容

请求购买前
记录订单的token,openid,playerid,payId,写入数据库

腾讯发货后
根据token,oenid查找数据库里对应的playerid,payId,serverid…
调用真实的发货接口即可

常见问题:

在请求用户信息时,偶尔会出现 504 GateWay,导致程序无法识别QQ用户信息
在这里插入图片描述
在这里插入图片描述
因为用了QQ的例子,这里的sdk包没有更新,所以根据审核技术人员的提供的消息进行修改
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/koljy111/article/details/122497781
今日推荐