Files
tysdk-intergration/docs/enjoypay-integration-steps.md
2026-06-05 16:58:17 +08:00

6.2 KiB
Raw Permalink Blame History

EnjoyPay Android 接入开发步骤

资料来源

  • 主要依据:通过 wiki MCP 读取的文档
    • https://wiki.bamboogames.top/doc/5oqa5pyv5rkf6yca-dF8FesCMt3
    • https://wiki.bamboogames.top/doc/sdk-PiMyYd30k5
  • 辅助参考:D:/.devup/【Enjoypay三方支付】接入指引.pdf
  • 参数来源:D:/.devup/【128-FishingTravel】【Google俄罗斯】接入支持.pdf

参数读取规则

  • EnjoyPay / Google 俄罗斯包相关参数统一从 【128-FishingTravel】【Google俄罗斯】接入支持.pdf 读取。
  • 当前代码侧只写入打包和 SDK 初始化必需、且文档中已经明确给出的参数。
  • PDF 中覆盖的参数范围包括:
    • 基础信息包名、clientId、服务器地址等。
    • EnjoyPayEnjoyPay 应用 AppId、商户号、AppSecret、计费点配置、发货通知地址、退款通知地址等。
    • AppsFlyeraf_appiddevkey
    • Firebasegoogle-services.json、Gradle / Firebase 依赖说明。
    • AIHelpApp key、domain、Android platform 配置。
    • 设备指纹businessId、secretId、secretKey。
    • 广告变现:按平台申请对应参数。

已确认结论

  • 渠道名:EnjoyPay
  • Android 包名:com.arkgame.ft.ep
  • 俄罗斯包 clientIdAndroid_5.00_tyGuest,facebook.googleplay.0-hall20587.googleplay.FishingMasterRussia
  • 客户端支付类型:enjoypay.global.h5.web
  • 支付入口:复用现有 Tuyoo SDK SDKAPI.payNew 支付链路。
  • SDK 依赖:需要替换为支持 EnjoyPay 的新版 Tuyoo AAR。
  • 商品列表:当前测试工程不处理;接入正式项目时再从正式项目本地 json table / 表格数据构造 SKU。
  • 服务端发货:复用现有 OrderFunc / WaitForSvrOrder / ConfirmOrder 流程。
  • 不新增独立 EnjoyPay Billing adapter。
  • 不复用 Flexion / RuStore 的 pending、consume、receipt 验签逻辑。
  • 后台支付方式无需本次配置。

开发步骤

1. 在 ChannelBuildTool 中增加 EnjoyPay 渠道

文件:

  • sdk-intergration/Assets/Editor/ChannelBuildTool.cs

改动:

  • SupportedChannels 增加 EnjoyPay
  • 增加菜单 Tools/Switch Channel/EnjoyPay
  • 增加菜单 Tools/Build Android (Channel)/EnjoyPay
  • 增加菜单 Tools/Build Android (Channel)/EnjoyPay Debug
  • SwitchChannel 中为 EnjoyPay 设置 bundle idcom.arkgame.ft.ep
  • 已删除历史脚本 ExtraPluginCfgs/Android/switch-channel.sh;真实入口是 ChannelBuildTool.SwitchChannel

2. 增加 EnjoyPay 渠道配置目录

目录:

  • ExtraPluginCfgs/Android/enjoypay

需要包含:

  • ChannelEntry.java
  • ConfigManager.java
  • AndroidManifest.xml
  • mainTemplate.gradle
  • launcherTemplate.gradle
  • settingsTemplate.gradle
  • gradleTemplate.properties
  • Plugins/Android/<新版 Tuyoo AAR>
  • 可选:Files/google-services.json,仅在 EnjoyPay / Appsflyer / Firebase 需要独立配置时添加。

关键配置:

  • ChannelEntry.CHANNEL = "EnjoyPay"
  • Manifest packagecom.arkgame.ft.ep
  • Manifest 渠道标识:CHANNEL = EnjoyPay
  • ConfigManager.SDK_CLIENTID 使用参数文档中的俄罗斯包 clientIdAndroid_5.00_tyGuest,facebook.googleplay.0-hall20587.googleplay.FishingMasterRussia

3. 配置 Unity 侧支付类型

文件:

  • sdk-intergration/Packages/tysdk/Runtime/ChannelConfig.cs

增加映射:

"EnjoyPay" => "enjoypay.global.h5.web",

说明:

  • enj 是 SDK 后台“支付方式配置”使用的类型。
  • enj 不是客户端传给 SDKAPI.payNewpaytype

4. Java 支付链路保持默认实现

文件:

  • sdk-intergration/Packages/tysdk/Plugins/Android/SDKManager.java

预期行为:

  • EnjoyPay 不新增专用 IPaymentAdapter
  • UnityKnowNew(...) 走现有默认支付链路:
SDKAPI.getIns().payNew(payData, payType, mPay);

其中 payType.paytype 由 Unity 传入,值为 enjoypay.global.h5.web

5. 商品列表接入延后到正式项目

当前测试工程:

  • 不新增 EnjoyPay 商品列表逻辑。
  • 不改 SDKTest 的商品列表测试流程。

正式项目接入时:

  • EnjoyPay 不调用渠道商品列表查询接口。
  • 客户端从正式项目本地 table / json 构造 SKU 列表。
  • productIdourProductId 使用同一个商品具体 ID。
  • 如果 TbIAPItemList.ProductId1 就是 EnjoyPay 支付所需的商品具体 ID则直接使用 ProductId1 构造 SKU并复用现有 SKUDetail.ProdID -> TYSdkFacade.Pay -> SDKAPI.payNew 链路。

6. 替换新版 Tuyoo AAR

预期行为:

  • 将支持 EnjoyPay 的新版 Tuyoo AAR 放入:
ExtraPluginCfgs/Android/enjoypay/Plugins/Android/
  • ChannelBuildTool.SwitchChannel("EnjoyPay") 会同步到:
sdk-intergration/Packages/tysdk/Plugins/Android/

7. 后台与配置系统工作

这些工作在代码外完成:

  • 配置 EnjoyPay AppId、商户号、AppSecret。
  • 配置 EnjoyPay 计费点。
  • 配置途游商品 ID 与 EnjoyPay 计费点 ID 映射。
  • 确认 Appsflyer 是否需要与 RuStore 分开统计,以及是否需要独立 Appsflyer 配置。

验证清单

  1. 在 Unity 执行 Tools/Switch Channel/EnjoyPay
  2. 确认 sdk-intergration/Packages/tysdk/Plugins/Android/ChannelEntry.javaCHANNEL = "EnjoyPay"
  3. 确认 Android bundle id 为 com.arkgame.ft.ep
  4. 确认 ChannelConfig.PayType 在 EnjoyPay 渠道下返回 enjoypay.global.h5.web
  5. 确认 SDKManager.UnityKnowNew 使用默认 SDKAPI.payNew 链路。
  6. 确认 EnjoyPay 未启用 Flexion / RuStore 的 pending、consume、receipt 逻辑。
  7. 构建 Tools/Build Android (Channel)/EnjoyPay Debug
  8. 测试支付拉起与 SDK 回调。
  9. 确认 OrderFunc 匹配和发货流程复用现有逻辑。

待确认项

  • 新版 Tuyoo AAR 的具体文件名和版本。
  • EnjoyPay / Google 俄罗斯包是否需要独立 google-services.json,以参数 PDF 中最新文件为准。
  • 外链支付回跳是否需要新增 Android scheme / host / path / intent-filter
  • 正式项目接入时的本地商品表字段映射。
  • 是否必须展示 RUB 价格;如果需要,确认 RUB 金额来自哪张表、哪个字段。
  • 参数 PDF 与 google-services.json 中的包名均为 com.arkgame.ft.ep;当前代码按 com.arkgame.ft.ep 执行。