6.2 KiB
6.2 KiB
EnjoyPay Android 接入开发步骤
资料来源
- 主要依据:通过
wikiMCP 读取的文档https://wiki.bamboogames.top/doc/5oqa5pyv5rkf6yca-dF8FesCMt3https://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.javaConfigManager.javaAndroidManifest.xmlmainTemplate.gradlelauncherTemplate.gradlesettingsTemplate.gradlegradleTemplate.propertiesPlugins/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
增加映射:
"EnjoyPay" => "enjoypay.global.h5.web",
说明:
enj是 SDK 后台“支付方式配置”使用的类型。enj不是客户端传给SDKAPI.payNew的paytype。
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 列表。
productId和ourProductId使用同一个商品具体 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 配置。
验证清单
- 在 Unity 执行
Tools/Switch Channel/EnjoyPay。 - 确认
sdk-intergration/Packages/tysdk/Plugins/Android/ChannelEntry.java中CHANNEL = "EnjoyPay"。 - 确认 Android bundle id 为
com.arkgame.ft.ep。 - 确认
ChannelConfig.PayType在 EnjoyPay 渠道下返回enjoypay.global.h5.web。 - 确认
SDKManager.UnityKnowNew使用默认SDKAPI.payNew链路。 - 确认 EnjoyPay 未启用 Flexion / RuStore 的 pending、consume、receipt 逻辑。
- 构建
Tools/Build Android (Channel)/EnjoyPay Debug。 - 测试支付拉起与 SDK 回调。
- 确认 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执行。