update:enjoy-pay 接入
This commit is contained in:
172
docs/enjoypay-integration-steps.md
Normal file
172
docs/enjoypay-integration-steps.md
Normal 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、服务器地址等。
|
||||
- EnjoyPay:EnjoyPay 应用 AppId、商户号、AppSecret、计费点配置、发货通知地址、退款通知地址等。
|
||||
- AppsFlyer:`af_appid`、`devkey`。
|
||||
- Firebase:`google-services.json`、Gradle / Firebase 依赖说明。
|
||||
- AIHelp:App 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` 执行。
|
||||
Reference in New Issue
Block a user