update:enjoy-pay 接入

This commit is contained in:
2026-06-03 17:33:34 +08:00
parent ea03c8023f
commit 3da65b8cbd
17 changed files with 704 additions and 61 deletions

View File

@@ -0,0 +1,172 @@
# 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、计费点配置、发货通知地址、退款通知地址等。
- AppsFlyer`af_appid``devkey`
- Firebase`google-services.json`、Gradle / Firebase 依赖说明。
- AIHelpApp key、domain、Android platform 配置。
- 设备指纹businessId、secretId、secretKey。
- 广告变现:按平台申请对应参数。
## 已确认结论
- 渠道名:`EnjoyPay`
- Android 包名:`com.arkgame.ft.ep`
- 俄罗斯包 clientId`Android_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 id`com.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 package`com.arkgame.ft.ep`
- Manifest 渠道标识:`CHANNEL = EnjoyPay`
- `ConfigManager.SDK_CLIENTID` 使用参数文档中的俄罗斯包 clientId`Android_5.00_tyGuest,facebook.googleplay.0-hall20587.googleplay.FishingMasterRussia`
### 3. 配置 Unity 侧支付类型
文件:
- `sdk-intergration/Packages/tysdk/Runtime/ChannelConfig.cs`
增加映射:
```csharp
"EnjoyPay" => "enjoypay.global.h5.web",
```
说明:
- `enj` 是 SDK 后台“支付方式配置”使用的类型。
- `enj` 不是客户端传给 `SDKAPI.payNew``paytype`
### 4. Java 支付链路保持默认实现
文件:
- `sdk-intergration/Packages/tysdk/Plugins/Android/SDKManager.java`
预期行为:
- EnjoyPay 不新增专用 `IPaymentAdapter`
- `UnityKnowNew(...)` 走现有默认支付链路:
```java
SDKAPI.getIns().payNew(payData, payType, mPay);
```
其中 `payType.paytype` 由 Unity 传入,值为 `enjoypay.global.h5.web`
### 5. 商品列表接入延后到正式项目
当前测试工程:
- 不新增 EnjoyPay 商品列表逻辑。
- 不改 `SDKTest` 的商品列表测试流程。
正式项目接入时:
- EnjoyPay 不调用渠道商品列表查询接口。
- 客户端从正式项目本地 table / json 构造 SKU 列表。
- `productId``ourProductId` 使用同一个商品具体 ID。
- 如果 `TbIAPItemList.ProductId1` 就是 EnjoyPay 支付所需的商品具体 ID则直接使用 `ProductId1` 构造 SKU并复用现有 `SKUDetail.ProdID -> TYSdkFacade.Pay -> SDKAPI.payNew` 链路。
### 6. 替换新版 Tuyoo AAR
预期行为:
- 将支持 EnjoyPay 的新版 Tuyoo AAR 放入:
```text
ExtraPluginCfgs/Android/enjoypay/Plugins/Android/
```
- `ChannelBuildTool.SwitchChannel("EnjoyPay")` 会同步到:
```text
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.java``CHANNEL = "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` 执行。