Organizations

4 results for 联运发行
  • Android海外发行 这里针对的是海外版本推广处理, 主要是 Google Play 游戏商城上架等事务. 首先必须要说明的是发行 SDK 除非官方已经强制要求升级, 否则尽量采用 JDK1.8 支持 JDK1.8 是国内普遍应用的版本, 直接采用对接过程能够省下很多联调功夫 需要说明 AGP(Android Gradle Plugin) 需要选择对应选择兼容版本: Gradle 7.0 → AGP 7.0.0+ Gradle 7.1 → AGP 7.1.0+ Gradle 7.2 → AGP 7.2.0+ Gradle 7.3 → AGP 7.3.0+ Gradle 7.4 → AGP 7.4.0+ Gradle 7.5 → AGP 7.4.2+ 注意: Gradle 7.x 以上版本推荐构建环境为 JDK11, 而编译目标为 JDK1.8 这里按照自身需求选定打包插件(AGP): buildscript { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.
    联运发行 Created Sat, 18 Oct 2025 15:20:44 +0800
  • 开发环境依赖: Java: 1.8 Gradle: 7.2 minSdkVersion: 17 targetSdkVersion: 26 需要注意: 游戏开发和SDK接入是完全解耦的, 也就是发行设计SDK无需关心接入的游戏任何信息 这里具体的平台主要针对海外发行渠道, 所以默认是以 Google Play 作为上架平台来说明, 具体平台方向: 主流移动端应用市场(App Store/Google Play/Facebook) 官方渠道(比如官网, 一般情况下是提供安卓APK包和PC端的直接下载方式, H5则是提供游戏链接) 其他手游联运渠道(比如Huawei AppGallery/Samsung Store/Amazon Appstore/QooApp等商店渠道) 主流PC游戏市场(Steam/XBoxGame) 项目自定义的安卓发行包的包名: com.game.fgame(可以自己按照习惯去自定义包名) 这里模拟假设以下信息方便我们搭建自己的发行平台: 公司名: FastGame 公司主体: 快游Game 应用包: com.game.fgame 项目简称: fgame 项目目录: fgame-sdk 具体的项目架构如下: / ─── fgame-lib/ │ ├─ src/ │ │ ├─ main/ │ │ │ ├─ java/com/game/fgame/ │ │ │ │ ├─ core/ // 核心逻辑(单例管理、初始化) │ │ │ │ ├─ login/ // 登录模块 │ │ │ │ ├─ pay/ // 支付模块 │ │ │ │ ├─ report/ // 数据上报模块 │ │ │ │ ├─ config/ // 配置管理 │ │ │ │ ├─ utils/ // 工具类(加密、日志、网络等) │ │ │ │ └─ FGameSdk.
    联运发行 Created Wed, 15 Oct 2025 20:49:23 +0800
  • 联运发行平台搭建(补充) 这里是对之前的 SDK发行平台搭建 的补充, 如果之前不清楚需要补充扩展. 之前说明还包含提供给 CP 其他平台的集成包: Android平台接入包, 尽可能用比较少的依赖传统来接入包 iOS平台接入包, 按照平台SDK包直接接入IOS工程 这种其实扩展出来出来还有其他集成包: Unity3D平台接入包, 用于游戏引擎接入 UE平台接入包, 同上 但是万变不离其宗, 内部所有变化全部都是准备让 CP 方账号入库之后推送账号信息到 我们发行方 接口之中( 走 Web+JSON 形式 ). 无论平台怎么变最后都是需要 CP 账号同步传递到我们发行接口进行账号绑定, Android/iOS/Unity/UE 平台底层主要工作就是集成 HTTP 推送数据功能类库. 这里以 游戏接入+Android 类型做处理, 需要实现这几个接口事件推送: 创建角色, 必须 进入游戏, 必须 等级提升, 非必须 退出游戏, 非必须 游戏支付, 非必须 其中 "创建角色,进入游戏,角色升级,退出游戏" 这些步骤可能需要上报外部扩展数据( 必须角色VIP/角色昵称/角色服务器ID ), 以便直接监控玩家统计用户数据事件. 对应平台SDK已经集成 HTTP 请求库, 所以这里只需要关注提交上来 JSON 结构体数据即可, 但是可以考虑自己扩展 Web-JS 平台, 那么对应可能扩展平台接入包: Android平台接入包, 尽可能用比较少的依赖传统来接入包 iOS平台接入包, 按照平台SDK包直接接入IOS工程 Web平台接入包, 是上面的平台都是封装Web平台的数据上报功能 很多第三方要求指定时间做玩家数据上报功能, 所以需要做事件上报接口监控; 同时事件上报和登录接口是不一致的, 不要混淆在一起
    联运发行 Created Fri, 17 Nov 2023 13:24:58 +0800
  • SDK联运平台搭建 如果想创建自己的联运发行平台SDK系统, 那么至少需要满足平台需求: Android平台接入包, 尽可能用比较少的依赖传统来接入包 iOS平台接入包, 按照平台SDK包直接接入IOS工程 业务API系统, 主要处理与客户端的协议,比如登陆注册,支付等核心逻辑 后台管理系统, 用于自动化和市场创建自己生成接入应用 作业调度系统, 批量作业,定时任务等做可视化的管理以及告警配置等 这些都是作为发行平台所需要处理的, 这里需要先说明下 业务API系统 和 后台管理系统, 启动依赖包接入和作业调度系统等则需要另外处理. 业务API系统 业务 API 相对来说只需要处理以下接口: 登录认证 支付回调 一般来说接入包唤起登录之后走 HTTP 推送请求登录参数, 如下图情况: 所以按照需求来说后台需要帮其生成接入包应用, 比如后台手动创建 appid=1001,key=xxx,secret=yyy(appid用于标识应用,key用于登录参与加密,secret用于支付), 所以一般来说CP方可以获取到我们以下内容: 而支付回调流程则是如下流程: 支付必须先让实际第三方支付地址填写到我们的发行方回调地址, 之后验证支付完成之后转发到 CP 方面( 这里用到定时任务不断的推送 CP 消息等待确实修改已完成的标识 ). 最终 CP 方会获得以下参数: appid, 后台创建的应用 key, 参与登录哈希处理 secret, 用于支付回调 Android/Ios接入包, 用于客户端调用登录和支付到接口 登录接口请求 认证地址: https://www.自己的域名.com/v1/user/login 请求方式: POST 请求参数: uid, 客户端登录之后CP方系统推送自家系统数据库玩家id token, 客户端登录之后CP方系统自己登录会话的token标识 appid, 我们自己发行平台生成 appid timestamp, 时间戳用于参与加密保证有效实时性 sign, 以上参数加上我们自己发行平台生成key以key从小到大正序排序参与哈希 生成签名: // 构建请求参数 $fields = [ 'uid' => '100111_1', // 有的应用是单游戏多服务器类型, 所以会出现uid+服务器id混合这种字段, 所以这里最好采用字符串形式 'token' => 'token', // 一般来说推送过来是玩家在登录之后会话token 'appid' => 1001, // 申请的自己发行 appid 'timestamp' => 10000000, // 当前时间戳 ]; ksort($fields); // 以 key 做正序排序 $fields_query = http_build_query($fields);// 构建成 xxx1=yyy1&xxx2=yyy2 // 哈希处理sign $key = "test_key"; // 申请的自己发行 key 参数 $fields_str = sprintf("%s%s%s",$key,$fields_query,$key);// 用 key 包围准备合并哈希 $sign = md5($fields_str);// 最后哈希得出 0b9a596f404cd9df2c23ee384b34e560 $fields['sign'] = $sign; // 合并作为参数提交 // 最后得出的请求参数 // array(5) { // ["appid"]=> // int(1001) // ["timestamp"]=> // int(10000000) // ["token"]=> // string(5) "token" // ["uid"]=> // string(8) "100111_1" // ["sign"]=> // string(32) "0b9a596f404cd9df2c23ee384b34e560" // } 这里就是标准的登录请求发行流程, 之后就是支付发起问题.
    联运发行 Created Thu, 16 Nov 2023 20:07:54 +0800