编写背景原因
由于最近在steam渠道的客户端要推出商品购买功能,而steam官方要求使用steam小额支付,所以研究了一下steam官方文档,感觉坑还是蛮多的,所以总结了一下。
这篇文章主要包含整体对接流程说明和服务端开发的实现细节。
工具
一些有用的链接:
steam个人主页:https://partner.steamgames.com/dashboard,需要登录。 steam官方文档:https://partner.steamgames.com/doc/features/microtransactions/implementation steam官方论坛:https://steamcommunity.com/discussions/虽然论坛里大多是关于游戏的讨论,但也有许多技术相关的内容,有些问题可以尝试在论坛上搜索,也可以留言求救(虽然大概率没人回你) 前提准备
获取steam上我的应用的appid
首先你要有自己的应用,然后打开steam个人主页,找到应用名称后边的那串数字,记录下来后边要用。
在steam上创建一个WebAPI发行商密钥
1.打开管理组
2.选择包含该应用的管理组
3.选择创建webapi发行商密钥,我的直接已经创建过了,所以直接复制第二个红框的密钥,记录下来后边要用。
获取用户的steam id
非开发手段:登录steam客户端,打开账户明细,找到左上角账户名的Steam ID,记录下来后边要用。 客户端获取:参考官方文档https://partner.steamgames.com/doc/api/ISteamUser#GetSteamID 前端获取:参考官方文档https://partner.steamgames.com/doc/features/auth#website 注意:
网上有些文章说去steam安装目录找目录名作为steam id的说法,我验证过是错误的,切记不要用这种方法。 有时候账户明细打不开,是网络原因,可能需要科学上网。 建议使用客户端获取,因为前端获取需要用户走登录steam的流程,体验较差。 至此,我们已经获取到了appid、webApiKey、steamid。
两种实现方式
游戏内购买 基于网页的购买 steam小额支付有两种实现方式,分别是游戏内购买和基于网页的购买,游戏内购买主要开发工作在客户端,基于网页的购买主要开发工作在前端,服务端实现差别不大。 steam服务提供的能力
服务端调用steam接口
ISteamMicroTxn/GetUserInfo 使用steam id获取steam用户信息 比较简单 用于检查用户状态是否可以购买 ISteamMicroTxn/InitTxn 初始化steam支付订单 坑比较多,很多错误steam给的接口返回是500内部错误 保证你使用的steam id对应的账号在steam客户端打开了应用 保证你的steam id获取是正确的,我找到的大概是18位长度的数字 保证你的orderid是在合法范围内的,如果总是出现订单号已存在请检查orderid是否超出长度 如果使用基于网页的购买需要传递参数usersession=web和ipaddress=客户端IP 基于网页的购买接口返回会附带steamurl参数 ISteamMicroTxn/QueryTxn 查询支付结果 比较简单 游戏内购买的话客户端会直接得到购买结果,可以不调用这个接口 ISteamMicroTxn/FinalizeTxn 确认支付结果 比较简单 该接口请求成功后,才会真实付款 基本流程
客户端获取steam id,传递给服务端。 服务端发起ISteamMicroTxn/GetUserInfo检查用户是否可以购买。 服务端发起ISteamMicroTxn/InitTxn 创建订单。 如果是游戏内购买,在请求成功后,用户将会通过 Steam 的游戏内界面收到需要对交易进行授权的通知,在用户操作支付确认后,由应用设置的ISteamUser::MicroTxnAuthorizationResponse_t 回调处理程序`来通知服务端用户确认支付状态。 如果基于网页的购买,在请求成功的返回中会带有steamurl,在用户浏览器上打开steamurl?return_url=支付完成回调的地址,用户实际支付操作就是在steamurl这个地址上完成支付确认的,在用户支付确认完成后,steamurl网页会有回调跳转到附带参数return_url的地址,在这个地址前端需要通知服务端用户已确认支付。 服务端收到通知后,调用ISteamMicroTxn/QueryTxn 查询支付结果,如果支付成功,调用ISteamMicroTxn/FinalizeTxn通知steam完成订单并扣款,同时告知客户端处理成功。 相关知识
steam小额支付对接心得由于最近在steam渠道的客户端要推出商品购买功能,而steam官方要求使用steam小额支付
unity接入steam支付
小额交易(游戏内购买) (Steamworks 文献库)
steam怎么购 在Steam平台上怎么购买游戏
steam无法加好友不符合要求 Steam添加好友功能的要求有什么
steam游戏要重新购买 steam游戏需要重新购买
小额交易实现指南 (Steamworks 文献库)
steam 天际线怎么购买 怎么在Steam上购买都市天际线游戏
steam怎么购买绝地求生cdk Steam绝地求生怎么购买
怎么购买steam上的游戏 steam上怎么购买游戏指南
网址:
steam小额支付对接心得由于最近在steam渠道的客户端要推出商品购买功能,而steam官方要求使用steam小额支付 http://www.hyxgl.com/newsview351309.html