From dc5774890724cc7efd5b2cb8908b5aad225f953d Mon Sep 17 00:00:00 2001 From: Gavin Date: Wed, 20 Nov 2024 11:57:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20IAP=20=E6=96=87=E6=A1=A3=E4=BF=AE?= =?UTF-8?q?=E7=BC=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sdk/_partials/unity-sdk-installation.mdx | 1 + cn/docs/sdk/tap-iap/develop/android.mdx | 54 +++++++------ cn/docs/sdk/tap-iap/develop/unity.mdx | 80 ++++--------------- cn/docs/tap-download.mdx | 3 +- hk/docs/sdk/TapPayments/develop/android.mdx | 41 +++++----- hk/docs/sdk/TapPayments/develop/unity.mdx | 6 +- 6 files changed, 72 insertions(+), 113 deletions(-) diff --git a/cn/docs/sdk/_partials/unity-sdk-installation.mdx b/cn/docs/sdk/_partials/unity-sdk-installation.mdx index 8285a66d6..06b55dc33 100644 --- a/cn/docs/sdk/_partials/unity-sdk-installation.mdx +++ b/cn/docs/sdk/_partials/unity-sdk-installation.mdx @@ -47,6 +47,7 @@ SDK 支持通过 NPMJS 及 GitHub 两种方式,开发者选择其中一种即 {`"dependencies":{ + ${props.systemNpmDeps} ${props.npmDeps.map(dep => `"${dep}":"${v4SDKVersions.taptap.unity}",`).join('\n ')} }`} diff --git a/cn/docs/sdk/tap-iap/develop/android.mdx b/cn/docs/sdk/tap-iap/develop/android.mdx index 1792b6560..2042dcc11 100644 --- a/cn/docs/sdk/tap-iap/develop/android.mdx +++ b/cn/docs/sdk/tap-iap/develop/android.mdx @@ -15,7 +15,7 @@ import CodeBlock from '@theme/CodeBlock'; ## **准备** -- 参照 [准备工作](/sdk/access/get-ready/) 所述创建 app,配置 app 参数并且绑定 API 域名 +- 参照 [准备工作](/sdk/access/get-ready/) 所述创建 app,配置 app 参数 - 参照 [TapSDK 快速开始](/sdk/access/quickstart/) 配置包名和签名 ## **SDK 指南** @@ -41,27 +41,30 @@ import CodeBlock from '@theme/CodeBlock'; ### **SDK 初始化** -添加 TapTapIAP 的依赖项后,您需要初始化 `TapTapIAP` 实例。`TapTapIAP` 是 SDK 与应用的其余部分之间进行通信。`TapTapIAP` 为许多常见的操作提供了方法。 - -首先 在应用启动时需要进行 SDK 初始化, 通过设置 `TapTapSdkOptions`, 完成 SDK 初始化, `TapTapSdk.init` 。 - -这里需要设置对应在开发者后台申请的 `ClientID` 和 `ClientToken`,用于校验是否有权限使用 `TapTapIAP`。 +TapTap 登录模块依赖于 TapTapSDK 初始化,具体参考 [TapSDK 集成](/sdk/access/quickstart/#初始化) ```java -TapTapSdkOptions sdkOptions = new TapTapSdkOptions( - "应用的 ClientID", // clientId 开发者平台申请 - "应用的 ClientToken", // clientToken 开发者平台申请 - TapTapRegion.GLOBAL, // 地区 - "", // 分包渠道名称 - "", // 游戏版本, 为空为null会取AppVersion - false, // 是否自动上报GooglePlay内购支付成功事件 仅 [TapTapRegion.GLOBAL] 生效 - false, // 自定义字段是否能覆盖内置字段 - null, // 自定义属性,启动首个预置事件(device_login)会带上这些属性 - null, // OAID证书, 用于上报 OAID 仅 [TapTapRegion.CN] 生效 - false // 是否开启 log,建议 Debug 开启,Release 关闭 -); -TapTapSdk.init(context, sdkOptions); +import com.taptap.sdk.core.TapTapRegion; +import com.taptap.sdk.core.TapTapSdk; +import com.taptap.sdk.core.TapTapSdkOptions; + +/* 必选配置 */ +// 开发者中心对应 Client ID +String clientId = ""; +// 开发者中心对应 Client Token +String clientToken = ""; +// 是否开启 log,建议 Debug 开启,Release 关闭,默认关闭 log +boolean enableLog = BuildConfig.DEBUG; + +TapTapSdkOptions tapSdkOptions = new TapTapSdkOptions( + clientId, // 游戏 Client ID + clientToken, // 游戏 Client Token + TapTapRegion.CN // 游戏可玩区域: [TapTapRegion.CN]=国内 [TapTapRegion.GLOBAL]=海外 +); +tapSdkOptions.setEnableLog(enableLog); +// 初始化 TapSDK +TapTapSdk.init(context, tapSdkOptions); ``` 创建 `TapTapIAP`,请使用 `newBuilder()`这里会根据SDK.init所设置的 `ClientID` 和 `ClientToken`校验是否有权限使用 `TapTapIAP`。 @@ -98,8 +101,8 @@ tapTapIAP.queryProductDetailsAsync(params, new ProductDetailsResponseListener() List productDetails, List unavailableProductIds) { ... - // check TapPaymentResult - // process returned productDetails + // 判断 TapPaymentResult + // 使用商品详情 } }); ``` @@ -113,21 +116,21 @@ tapTapIAP.queryProductDetailsAsync(params, new ProductDetailsResponseListener() Activity activity = ...; ProductDetailsParams productDetailsParams = ProductDetailsParams.newBuilder() - // retrieve a value for "productDetails" by calling queryProductDetailsAsync() + // 使用从 queryProductDetailsAsync() 查询回来的商品详情 .setProductDetails(productDetails) .build(); BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder() .setProductDetailsParams(productDetailsParams) - .setObfuscatedAccountId("xxx") //Specifies an optional obfuscated string that is uniquely associated with the order(or another information) in your app. + .setObfuscatedAccountId("xxx") // 重要, 在这里设置你APP内唯一标识,例如:订单ID等 .build(); -// Launch the billing flow +// 发起 IAP 购买流程 TapPaymentResult result = tapTapIAP.launchBillingFlow(activity, billingFlowParams, new PurchaseUpdatedListener() { @Override public void onPurchaseUpdated(TapPaymentResult result, Purchase purchases) { - // To be implemented in a later section. + // 监听订单回调做相应处理 } } ); @@ -160,7 +163,6 @@ public void onPurchaseUpdated(TapPaymentResult result, Purchase purchase) { Purchase purchase = ...; FinishPurchaseParams params = FinishPurchaseParams.newBuilder() .setId(purchase.getOrderId()) // Required - .setOrderToken(purchase.getOrderToken()) // Required .setPurchaseToken(purchase.getPurchaseToken()) // Required .build(); tapTapIAP.finishPurchaseAsync(params, new FinishPurchaseResponseListener() { diff --git a/cn/docs/sdk/tap-iap/develop/unity.mdx b/cn/docs/sdk/tap-iap/develop/unity.mdx index 120b92ce2..ba2e19438 100644 --- a/cn/docs/sdk/tap-iap/develop/unity.mdx +++ b/cn/docs/sdk/tap-iap/develop/unity.mdx @@ -6,6 +6,7 @@ sidebar_position: 1 import MultiLang from "/src/docComponents/MultiLang"; import v4SDKVersions from '/src/docComponents/v4SDKVersions'; +import UnitySDKInstallation from "../../_partials/unity-sdk-installation.mdx"; import CodeBlock from '@theme/CodeBlock'; @@ -15,7 +16,7 @@ import CodeBlock from '@theme/CodeBlock'; ## 准备 -- 参照 [准备工作](/sdk/access/get-ready/) 所述创建 app,配置 app 参数并且绑定 API 域名 +- 参照 [准备工作](/sdk/access/get-ready/) 所述创建 app,配置 app 参数 - 参照 [TapSDK 快速开始](/sdk/access/quickstart/) 配置包名和签名 ## 获取 SDK @@ -24,68 +25,21 @@ import CodeBlock from '@theme/CodeBlock'; Unity 2020.3.15 之前的版本为了避免后面构建报错建议升级 Gradle 版本,可参考该 [Gradle 升级步骤文档](/sdk/tap-iap/faq/#1unity-2020315-之前的版本升级-gradle-版本的操作步骤)。 ::: -以下介绍了**通过 Unity Package Manager 导入**或者**修改 Packages/manifest.json 配置文件引入**两种方式,根据项目需要,任选其一即可: + -### 1、通过 Package Manager 可视化界面引入 - -因为 TapTap IAP 依赖 **EDM4U(External Dependency Manager for Unity)** 来处理 Android 相关的依赖,因此引入依赖的步骤是**先安装 EDM4U 库,然后安装 TapTap IAP**。 - -#### 安装 EDM4U - -下面介绍了两种方式安装 EDM4U,分别是通过 **OpenUPM 安装**以及**手动下载安装**; - -- **方法一:通过 OpenUPM 安装 EDM4U** - -EDM4U 可以通过 OpenUPM 进行下载,开发者可以通过 **Edit > Project Settings > Package Manager** 来注册使用 OpenUPM。 - -![](https://capacity-files.lcfile.com/gpS8BcTVJIdSpMxyDipIWORX4Gb2filA/NdoQbmRRvovet4x3LGUcsTXWnjb.png) - -- **方法二:手动下载安装** - -开发者可以通过 [Google APIs for Unity](https://developers.google.com/unity/archive#external_dependency_manager_for_unity) 下载 UPM 安装包. 并且通过[从本地磁盘安装](https://docs.unity3d.com/Manual/upm-ui-local.html)的方式进行安装。 - -#### 安装 TapTap IAP - -TapTap IAP 可以通过 NPMJS 进行安装, 开发者可以通过 **Edit > Project Settings > Package Manager** 来注册使用 NPMJS。 - -![](https://capacity-files.lcfile.com/sJDhXK4vAwAYX7BpQFh1SrQzeUmXk165/taptap.png) - -<> - 配置完成以后就可以在 Window > Package Manager > My Registries 中安装 TapTapSDK IAP {v4SDKVersions.taptap.unity}。 - 如果安装目录中没有 TapTapSDK IAP, 请尝试在 Edit > Project Settings > Package Manager 中重新注册 NPMJS。 - - -![](https://img.tapimg.com/market/images/cda0911e47723fba9bee9a29ef62260f.png) - - -### 2、修改 Packages/manifest.json 文件 - - - {` "dependencies": { - "com.taptap.sdk.iap": "${v4SDKVersions.taptap.unity}", //添加 TapTap IAP - "com.unity.purchasing": "3.1.0", //TapTap IAP 所须依赖 - "com.google.external-dependency-manager": "1.2.179", //TapTap IAP 所须依赖 - "com.taptap.sdk.core": "${v4SDKVersions.taptap.unity}", - ... - ... - }, - - // 添加 Registries - "scopedRegistries": [ - { - "name": "taptap", - "url": "https://registry.npmjs.org", - "scopes": ["com.tapsdk", "com.taptap", "com.leancloud"] - }, - { - "name": "openupm", - "url": "https://package.openupm.com", - "scopes": [ - "com.google" - ] - } - ]`} - :::tip @@ -149,7 +103,7 @@ public class MyIAPManager : IStoreListener { var builder = ConfigurationBuilder.Instance(TapPurchasingModule.Instance); builder.Configure().SetClientId("Your Client ID Here"); builder.Configure().SetClientToken("Your Client Token Here"); - builder.Configure().SetRegionCode(1); // 0: CN, 1: GLOBAL + builder.Configure().SetRegionCode(0); // 0: CN, 1: GLOBAL builder.AddProduct("100_gold_coins", ProductType.Consumable); UnityPurchasing.Initialize (this, builder); diff --git a/cn/docs/tap-download.mdx b/cn/docs/tap-download.mdx index 03533e229..70f5dc035 100644 --- a/cn/docs/tap-download.mdx +++ b/cn/docs/tap-download.mdx @@ -30,6 +30,7 @@ TapSDK 为我们提供的众多服务的总称,为了方便开发者按需接 | 正版验证 | tap-license | https://mvnrepository.com/artifact/com.taptap.sdk/tap-license | | 分享 | tap-share | https://mvnrepository.com/artifact/com.taptap.sdk/tap-share | | 评价 | tap-review | https://mvnrepository.com/artifact/com.taptap.sdk/tap-review | +| 内购服务 | tap-iap | https://mvnrepository.com/artifact/com.taptap.android.payment/iap
https://mvnrepository.com/artifact/com.taptap.android.payment/checkout
https://mvnrepository.com/artifact/com.taptap.android.payment/core
https://mvnrepository.com/artifact/com.taptap.android.payment/base
https://mvnrepository.com/artifact/com.taptap.android.payment/alipaycn
https://mvnrepository.com/artifact/com.taptap.android.payment/wechat |

iOS { v4SDKVersions.taptap.ios}

@@ -55,7 +56,7 @@ TapSDK 为我们提供的众多服务的总称,为了方便开发者按需接 | 成就系统 | tap-achievement | https://github.com/taptap/TapSDKAchievement-Unity/releases | | 正版验证 | tap-license | https://github.com/taptap/TapSDKLicense-Unity/releases | | 评价 | tap-review | https://github.com/taptap/TapSDKReview-Unity/releases | - +| 内购服务 | tap-iap | https://github.com/taptap/TapSDKIAP-Unity/releases | ## 商业变现 TapADN SDK 是由「易玩(上海)网络科技有限公司」开发,向媒体提供丰富的广告资源,依托高效的算法引擎,帮助开发者实现流量变现。

diff --git a/hk/docs/sdk/TapPayments/develop/android.mdx b/hk/docs/sdk/TapPayments/develop/android.mdx index 287318c40..46235c652 100644 --- a/hk/docs/sdk/TapPayments/develop/android.mdx +++ b/hk/docs/sdk/TapPayments/develop/android.mdx @@ -15,7 +15,7 @@ import CodeBlock from '@theme/CodeBlock'; ## **准备** -- 参照 [准备工作](/sdk/access/get-ready/) 所述创建 app,配置 app 参数并且绑定 API 域名 +- 参照 [准备工作](/sdk/access/get-ready/) 所述创建 app,配置 app 参数 - 参照 [TapSDK 快速开始](/sdk/access/quickstart/) 配置包名和签名 ## **SDK 指南** @@ -42,27 +42,30 @@ import CodeBlock from '@theme/CodeBlock'; ### **SDK 初始化** -添加 TapTapIAP 的依赖项后,您需要初始化 `TapTapIAP` 实例。`TapTapIAP` 是 SDK 与应用的其余部分之间进行通信。`TapTapIAP` 为许多常见的操作提供了方法。 - -首先 在应用启动时需要进行 SDK 初始化, 通过设置 `TapTapSdkOptions`, 完成 SDK 初始化, `TapTapSdk.init` 。 - -这里需要设置对应在开发者后台申请的 `ClientID` 和 `ClientToken`,用于校验是否有权限使用 `TapTapIAP`。 +TapTap 登录模块依赖于 TapTapSDK 初始化,具体参考 [TapSDK 集成](/sdk/access/quickstart/#初始化) ```java -TapTapSdkOptions sdkOptions = new TapTapSdkOptions( - "应用的 ClientID", // clientId 开发者平台申请 - "应用的 ClientToken", // clientToken 开发者平台申请 - TapTapRegion.GLOBAL, // 地区 - "", // 分包渠道名称 - "", // 游戏版本, 为空为null会取AppVersion - false, // 是否自动上报GooglePlay内购支付成功事件 仅 [TapTapRegion.GLOBAL] 生效 - false, // 自定义字段是否能覆盖内置字段 - null, // 自定义属性,启动首个预置事件(device_login)会带上这些属性 - null, // OAID证书, 用于上报 OAID 仅 [TapTapRegion.CN] 生效 - false // 是否开启 log,建议 Debug 开启,Release 关闭 -); -TapTapSdk.init(context, sdkOptions); +import com.taptap.sdk.core.TapTapRegion; +import com.taptap.sdk.core.TapTapSdk; +import com.taptap.sdk.core.TapTapSdkOptions; + +/* 必选配置 */ +// 开发者中心对应 Client ID +String clientId = ""; +// 开发者中心对应 Client Token +String clientToken = ""; +// 是否开启 log,建议 Debug 开启,Release 关闭,默认关闭 log +boolean enableLog = BuildConfig.DEBUG; + +TapTapSdkOptions tapSdkOptions = new TapTapSdkOptions( + clientId, // 游戏 Client ID + clientToken, // 游戏 Client Token + TapTapRegion.GLOBAL // 游戏可玩区域: [TapTapRegion.CN]=国内 [TapTapRegion.GLOBAL]=海外 +); +tapSdkOptions.setEnableLog(enableLog); +// 初始化 TapSDK +TapTapSdk.init(context, tapSdkOptions); ``` 创建 `TapTapIAP`,请使用 `newBuilder()`这里会根据SDK.init所设置的 `ClientID` 和 `ClientToken`校验是否有权限使用 `TapTapIAP`。 diff --git a/hk/docs/sdk/TapPayments/develop/unity.mdx b/hk/docs/sdk/TapPayments/develop/unity.mdx index 05120d66f..433c3c219 100644 --- a/hk/docs/sdk/TapPayments/develop/unity.mdx +++ b/hk/docs/sdk/TapPayments/develop/unity.mdx @@ -75,14 +75,12 @@ TapTap IAP 可以通过 NPMJS 进行安装, 开发者可以通过 **Edit > Proje { "name": "taptap", "url": "https://registry.npmjs.org", - "scopes": ["com.tapsdk", "com.taptap", "com.leancloud"] + "scopes": ["com.taptap"] }, { "name": "openupm", "url": "https://package.openupm.com", - "scopes": [ - "com.google" - ] + "scopes": ["com.google"] } ]`} From 32accd62e407298673a34d37e95274ee4cbf1eba Mon Sep 17 00:00:00 2001 From: Gavin Date: Wed, 20 Nov 2024 15:27:29 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20IAP=20=E4=BF=AE=E7=BC=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hk/docs/sdk/TapPayments/develop/android.mdx | 3 +- hk/docs/sdk/TapPayments/develop/unity.mdx | 4 +-- .../sdk/TapPayments/develop/android.mdx | 35 ++++++++++--------- .../current/sdk/TapPayments/develop/unity.mdx | 10 +++--- 4 files changed, 25 insertions(+), 27 deletions(-) diff --git a/hk/docs/sdk/TapPayments/develop/android.mdx b/hk/docs/sdk/TapPayments/develop/android.mdx index 46235c652..0a815d3a0 100644 --- a/hk/docs/sdk/TapPayments/develop/android.mdx +++ b/hk/docs/sdk/TapPayments/develop/android.mdx @@ -42,7 +42,7 @@ import CodeBlock from '@theme/CodeBlock'; ### **SDK 初始化** -TapTap 登录模块依赖于 TapTapSDK 初始化,具体参考 [TapSDK 集成](/sdk/access/quickstart/#初始化) +TapTapIAP 模块依赖于 TapTapSDK 初始化,具体参考 [TapSDK 集成](/sdk/access/quickstart/#初始化) ```java @@ -164,7 +164,6 @@ public void onPurchaseUpdated(TapPaymentResult result, Purchase purchase) { Purchase purchase = ...; FinishPurchaseParams params = FinishPurchaseParams.newBuilder() .setId(purchase.getOrderId()) // Required - .setOrderToken(purchase.getOrderToken()) // Required .setPurchaseToken(purchase.getPurchaseToken()) // Required .build(); tapTapIAP.finishPurchaseAsync(params, new FinishPurchaseResponseListener() { diff --git a/hk/docs/sdk/TapPayments/develop/unity.mdx b/hk/docs/sdk/TapPayments/develop/unity.mdx index 433c3c219..886874065 100644 --- a/hk/docs/sdk/TapPayments/develop/unity.mdx +++ b/hk/docs/sdk/TapPayments/develop/unity.mdx @@ -48,14 +48,14 @@ EDM4U 可以通过 OpenUPM 进行下载,开发者可以通过 **Edit > Project TapTap IAP 可以通过 NPMJS 进行安装, 开发者可以通过 **Edit > Project Settings > Package Manager** 来注册使用 NPMJS。 -![](https://capacity-files.lcfile.com/sJDhXK4vAwAYX7BpQFh1SrQzeUmXk165/taptap.png) +![](https://img.tapimg.com/market/images/4f0d11b80a358ff0f714b37a51d6007f.png) <> 配置完成以后就可以在 Window > Package Manager > My Registries 中安装 TapTapSDK IAP {v4SDKVersions.tapGlobalPayments.unity}。 如果安装目录中没有 TapTap Payments Global V2, 请尝试在 Edit > Project Settings > Package Manager 中重新注册 NPMJS。 -![](https://img.tapimg.com/market/images/cda0911e47723fba9bee9a29ef62260f.png) +![](https://img.tapimg.com/market/images/58581dbaaf3b269c453b0781e3a22a55.png) ### 2、修改 Packages/manifest.json 文件 diff --git a/hk/i18n/en/docusaurus-plugin-content-docs/current/sdk/TapPayments/develop/android.mdx b/hk/i18n/en/docusaurus-plugin-content-docs/current/sdk/TapPayments/develop/android.mdx index 0967bac45..6c5c5013c 100644 --- a/hk/i18n/en/docusaurus-plugin-content-docs/current/sdk/TapPayments/develop/android.mdx +++ b/hk/i18n/en/docusaurus-plugin-content-docs/current/sdk/TapPayments/develop/android.mdx @@ -38,27 +38,29 @@ Open the `project/app/build.gradle` file of your project and add the following g ### **SDK Initialization** -After adding the TapTapIAP dependency, you need to initialize the `TapTapIAP` instance. `TapTapIAP` communicates between the SDK and the rest of your application, providing methods for many common operations. +The TapTapIAP module relies on the initialization of the TapTapSDK. For details, refer to [TapSDK Integration](/sdk/access/quickstart/#Initialization). -First, initialize the SDK during app launch by setting `TapTapSdkOptions` and completing SDK initialization with `TapTapSdk.init`. +```java +import com.taptap.sdk.core.TapTapRegion; +import com.taptap.sdk.core.TapTapSdk; +import com.taptap.sdk.core.TapTapSdkOptions; -You need to set the `ClientID` and `ClientToken` obtained from the developer backend for permission validation to use `TapTapIAP`. +String clientId = ""; -```java -TapTapSdkOptions sdkOptions = new TapTapSdkOptions( - "Your App's ClientID", // clientId obtained from the developer platform - "Your App's ClientToken", // clientToken obtained from the developer platform - TapTapRegion.GLOBAL, // Region - "", // Sub-package channel name - "", // Game version, null will take AppVersion - false, // Automatically report GooglePlay purchase success event, effective only for [TapTapRegion.GLOBAL] - false, // Custom fields can overwrite built-in fields - null, // Custom attributes, included with the first preset event (device_login) - null, // OAID certificate, used for reporting OAID, effective only for [TapTapRegion.CN] - false // Enable log, recommended to enable in Debug and disable in Release +String clientToken = ""; +// Enable the log. It's recommended to turn it on for Debug and off for Release, with it being off by default. +boolean enableLog = BuildConfig.DEBUG; + +TapTapSdkOptions tapSdkOptions = new TapTapSdkOptions( + clientId, // clientId obtained from the developer platform + clientToken, // clientToken obtained from the developer platform + TapTapRegion.GLOBAL // Region: TapTapRegion.CN, TapTapRegion.GLOBAL ); +tapSdkOptions.setEnableLog(enableLog); + +TapTapSdk.init(context, tapSdkOptions); + -TapTapSdk.init(context, sdkOptions); ``` To create `TapTapIAP`, use `newBuilder()`, which will validate the permissions to use `TapTapIAP` based on the `ClientID` and `ClientToken` set in SDK.init. @@ -158,7 +160,6 @@ After a user completes the purchase of any product, confirm that the correspondi Purchase purchase = ...; FinishPurchaseParams params = FinishPurchaseParams.newBuilder() .setId(purchase.getOrderId()) // Required - .setOrderToken(purchase.getOrderToken()) // Required .setPurchaseToken(purchase.getPurchaseToken()) // Required .build(); tapTapIAP.finishPurchaseAsync(params, new FinishPurchaseResponseListener() { diff --git a/hk/i18n/en/docusaurus-plugin-content-docs/current/sdk/TapPayments/develop/unity.mdx b/hk/i18n/en/docusaurus-plugin-content-docs/current/sdk/TapPayments/develop/unity.mdx index 54ede3caa..79473b10e 100644 --- a/hk/i18n/en/docusaurus-plugin-content-docs/current/sdk/TapPayments/develop/unity.mdx +++ b/hk/i18n/en/docusaurus-plugin-content-docs/current/sdk/TapPayments/develop/unity.mdx @@ -46,14 +46,14 @@ Developers can download the UPM package from [Google APIs for Unity](https://dev The TapTap IAP can be installed via NPMJS. Developers can register to use NPMJS through **Edit > Project Settings > Package Manager**. -![](https://capacity-files.lcfile.com/sJDhXK4vAwAYX7BpQFh1SrQzeUmXk165/taptap.png) +![](https://img.tapimg.com/market/images/4f0d11b80a358ff0f714b37a51d6007f.png) <> After configuration, you can install TapTapSDK IAP {v4SDKVersions.tapGlobalPayments.unity} in Window > Package Manager > My Registries. If TapTap Payments Global V2 is not in the installation directory, try re-registering NPMJS in Edit > Project Settings > Package Manager. -![](https://img.tapimg.com/market/images/cda0911e47723fba9bee9a29ef62260f.png) +![](https://img.tapimg.com/market/images/58581dbaaf3b269c453b0781e3a22a55.png) ### 2. Modify the Packages/manifest.json File @@ -71,14 +71,12 @@ The TapTap IAP can be installed via NPMJS. Developers can register to use NPMJS { "name": "taptap", "url": "https://registry.npmjs.org", - "scopes": ["com.tapsdk", "com.taptap", "com.leancloud"] + "scopes": ["com.tapsdk"] }, { "name": "openupm", "url": "https://package.openupm.com", - "scopes": [ - "com.google" - ] + "scopes": ["com.google"] } ]`}