服务器集成
以下页面描述了 Alogame 支付集成所需的游戏服务器 API。
Alogame 会调用你服务器的每一个接口,都恰好属于以下三种契约之一。它们互不通用——各自有自己的接口、签名算法和响应格式。写代码之前,先向你的 Alogame 运营对接人确认你的游戏适用哪一种。
选择你的契约
| 契约 | 适用对象 | 你需要实现的内容 |
|---|---|---|
| Mobile IAP(目前仅有英文版) | 任何通过 iOS/Android SDK 销售(Apple / Google 计费)的游戏 | 2 个接口——创建订单、发放道具 |
| 网页支付 — 标准(目前仅有英文版) | 联合运营(co-pub)游戏。 没有特殊说明的话默认用这个 | 3 个接口——check UID、创建订单、支付通知——如果你的游戏需要选择器,再加上可选的服务器列表和/或角色列表 |
| 网页支付 — Expub(目前仅有英文版) | 独家/直营发行(expub)游戏 | 4 个接口——角色列表、check UID、创建订单、兑换 |
选哪个网页支付契约取决于你游戏的发行模式,而不是接入时间的先后——co-pub 和 expub 是两套不同的账号/角色模型,不是新旧版本的关系。
expub 游戏永远需要同时实现 Mobile IAP 和网页支付 — Expub(均目前仅有英文版)——一个负责应用内商店,一个负责网页充值页面;createOrder_url/exchange_url 两边共用。co-pub 游戏只有在同时拥有移动端应用时,才需要在网页支付 — 标准之上再加 Mobile IAP。
后端是 PHP? 不要照着上表手写任何一种网页支付契约——改装 网页支付 — PHP SDK。它同时覆盖网页支付 — 标准(三个 PHP 函数)和网页支付 — Expub,包括 Expub 共用的 Mobile IAP(四个 PHP 函数)——契约完全一样,只是不会再犯手抄字段名/签名时容易犯的错误。
想让网页充值流程嵌在游戏内展示,而不是跳转到独立的门户页面?那不是第四种契约——见**游戏内充值**(目前仅有英文版)。
三者的区别
| Mobile IAP | 网页支付 — 标准 | 网页支付 — Expub | |
|---|---|---|---|
| 签名算法 | MD5(目前仅有英文版)——固定 | 新接入请用 HMAC-SHA256(目前仅有英文版) | 新接入请用 HMAC-SHA256(目前仅有英文版) |
| 请求头 / 时间戳单位 / 错误上报方式 | 固定:Signature · 秒 · HTTP 状态码 | 取决于你使用的算法 | 取决于你使用的算法 |
| 角色选择方式 | 客户端内(SDK 内部完成) | 玩家自己输入 UID | Alogame 拉取你的角色列表 |
正在接入新的网页支付游戏?请使用 HMAC-SHA256——详见**身份认证**页面(目前仅有英文版)。另外还有两种 MD5 变体,仅供已接入的老游戏使用,即将停用,请勿用于新接入。
适用于所有契约的通用规则
- 生产环境接口必须使用有效 TLS 证书的 HTTPS。开发/预发布环境可以用 HTTP。
- 你需要按环境注册不同的 URL。Alogame 会自动路由到正确的那个,SDK 或客户端都不需要改动。
- 商品 ID 由你定义。 在接入阶段把你的商品列表发给 Alogame;Alogame 配置好之后,会在
productId里原样传回给你同样的 ID。这个 ID 在你游戏里代表什么,完全由你定义,Alogame 从不会自己发明一个。 - 每个进来的请求都必须先校验签名,再进行处理;过期请求要拒绝。
- 道具发放必须幂等。Alogame 会在超时或出错时重试,所以同一笔订单的发货调用完全可能合法地到达不止一次。
- 及时响应。Alogame 会中止响应过慢的请求,并把超时视为失败。