Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat cn iap v4 #1284

Merged
merged 11 commits into from
Nov 18, 2024
12 changes: 6 additions & 6 deletions cn/docs/sdk/anti-addiction/practice.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,22 @@ import v4SDKVersions from '/src/docComponents/v4SDKVersions';
### 创建应用获取应用参数
在 [TapTap 开发者中心](https://developer.taptap.cn) 创建游戏应用,获取应用 Client ID、Client Token 等参数,用于初始化 SDK;

![](https://capacity-files.lcfile.com/nnQKxgJJzgErOlIOcxnbIHt8Vc1RmGYe/tap_get_ready.png)
![](https://img.tapimg.com/market/images/e9b046743f9b561b9235505d35ed6e78.png)

### 开通 TapTap 登录服务
合规认证服务依赖于 TapTap 登录服务,因此,厂商需要在 **TapTap 开发者中心 > 你的游戏 > 游戏服务 > 应用配置** 开启「TapTap 登录」;

![](https://img.tapimg.com/market/images/168f902edd3de84cf0d5eb5fa640e78d.png)
![](https://img.tapimg.com/market/images/7cbe4b738646f8e0fd214852e1a61bee.png)

### 配置应用包名和签名信息
Android 签名处填写 MD5 值,详情可参考:[如何获取 MD5 值](/sdk/access/android-md5);

![](https://img.tapimg.com/market/images/3c725fc6859363f630d90471d0c8929b.png)
![](https://img.tapimg.com/market/images/12f339345e6bd04c37ad538a0a7e688d.png)

### 开通合规认证服务
找到 **TapTap 开发者中心 > 你的游戏 > 游戏服务 > 开发与构建 > 合规认证**,根据游戏实际情况,选择「已有版号」或「暂无版号」方案,然后点击**立即开通**
找到 **TapTap 开发者中心 > 你的游戏 > 游戏服务 > 基础服务 > 合规认证**,根据游戏实际情况,选择「已有版号」或「暂无版号」方案,然后点击**立即开通**

![](https://img.tapimg.com/market/images/90e6d759ba528aa7e9ef29077387edbb.png)
![](https://img.tapimg.com/market/images/23eb961832f75c683ca28e3d26b07c88.png)

:::tip
若游戏选择的是「已有版号」方案则还需要完成中宣部实名认证系统的注册以及相应配置,具体的操作请参考 [注册中宣部实名认证系统](/sdk/anti-addiction/features/#已有版号)
Expand All @@ -40,7 +40,7 @@ Android 签名处填写 MD5 值,详情可参考:[如何获取 MD5 值](/sdk/

在后续的代码集成中,也需要处理相关的 `1100` 回调

![](https://img.tapimg.com/market/images/e7fab2ce4099b792bd32390c04e28986.png)
![](https://img.tapimg.com/market/images/29c805cff1074f0b8bf03ba452ad3236.png)

## 代码接入

Expand Down
64 changes: 64 additions & 0 deletions cn/docs/sdk/apk-upload/guide.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,70 @@ Signature = Base64Encode(HMAC-SHA256(Server Secret, SignParts))

</details>

<details>
<summary>Shell 请求示例</summary>

```bash
#!/usr/bin/env bash

# TapTap API 上传 APK 「获取上传请求参数」接口请求示例 Shell 脚本
# 测试该脚本时需要开发者根据自己的应用参数替换如下四个参数:app_id、client_id、server_secret、file_name

# app_id:游戏在 TapTap 商店的唯一身份标识。 例如:https://www.taptap.cn/app/187168,其中 187168 是 app_id。
app_id="填写应用的 App ID"

# TapTap 开放平台提供的 Client ID,应用的客户端标识
client_id="填写应用的 Client ID"

# TapTap 开放平台的 Server Secret,服务端对服务端的调用凭证,用来生成签名的密钥(请勿泄露)
server_secret="填写应用的 Server Secret"

# 要上传的 APK 文件名,必须以 .apk 为扩展名,且只允许包含字母、数字、下划线和中横线
file_name="要上传的 APK 文件名,必须以 .apk 为扩展名"

# 生成 8 位随机字符串作为请求中的 nonce,用于防止请求重放
nonce=$(openssl rand -hex 4)

# 当前时间的秒级 Unix 时间戳,用于生成签名
ts=$(date +%s)

# 构造待签名的请求内容
# 请求方法
method="GET"

# 完整请求路径及其 QueryString 参数,用于访问 API 上传参数
url_path_and_query="/apk/v1/upload-params?app_id=${app_id}&file_name=${file_name}&client_id=${client_id}"

# 请求头信息,包含随机数 nonce 和时间戳 ts
headers=$(printf "%s\n%s" "x-tap-nonce:${nonce}" "x-tap-ts:${ts}")

# GET 请求不携带 Body,因此 Body 内容为空
body=""

# 输出待签名的请求内容(请求方法、路径、头信息、Body)用于调试
printf "%s\n%s\n%s\n%s\n" "${method}" "${url_path_and_query}" "${headers}" "${body}"

# 使用 HMAC-SHA256 算法对请求进行签名,并使用 Base64 编码
# 签名生成的步骤:使用请求方法、请求路径、请求头信息和 Body,通过密钥加密生成签名
sign=$(printf "%s\n%s\n%s\n%s\n" "${method}" "${url_path_and_query}" "${headers}" "${body}" | openssl dgst -binary -sha256 -hmac "${server_secret}" | base64)

# 输出生成的签名值用于调试
echo "生成的签名: $sign"

# 构造完整的请求 URL,包括路径和查询参数
Request_Url="https://cloud.tapapis.cn${url_path_and_query}"

# 使用 curl 发起 GET 请求,传递时间戳 ts、nonce 和签名 sign 作为请求头
curl -X GET \
-H "X-Tap-Ts: ${ts}" \
-H "X-Tap-Nonce: ${nonce}" \
-H "X-Tap-Sign: ${sign}" \
"${Request_Url}"
```

</details>


### 响应数据

| 字段名 | 描述 | 类型 |
Expand Down
3 changes: 2 additions & 1 deletion cn/docs/sdk/copyright-verification/features.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,5 @@ TapTap 的正版验证服务适用于买断制游戏,用于检测用户开始

当您的游戏需开放新章节、新主线等付费的 DLC 内容时,您同样可使用 DLC 正版验证服务完成用户的解锁资格验证。

在使用 DLC 正版验证服务前,请确保您的游戏存在一个用户可见的游戏详情页(可预约、可关注均可),并前往开发者中心 > 商店 > 游戏售卖创建 DLC 并提交审核。完成审核后, 请前往 [开发指南](/sdk/copyright-verification/guide/) 完成开发接入。
在使用 DLC 正版验证服务前,请确保您的游戏存在一个用户可见的游戏详情页(可预约、可关注均可),并确认您上传的游戏 APK 包体已通过审核。
确认无误后,请前往开发者中心 > 商店 > 游戏售卖,创建 DLC 并提交审核。完成审核后, 请参考 [开发指南](/sdk/copyright-verification/guide/) 完成开发接入。
61 changes: 54 additions & 7 deletions cn/docs/sdk/start/agreement.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@
title: TapSDK 隐私政策
sidebar_position: 8
---

更新日期:2024 年 9 月 30 日
生效日期:2024 年 9 月 30 日
更新日期:2024 年 11 月 15 日
生效日期:2024 年 11 月 15 日

易玩(上海)网络科技有限公司(以下简称“TapTap”或“我们”)通过 TapSDK 向开发者提供多种服务,开发者可以根据自身需求在其应用中接入其中任意一项或多项服务。本文档将向开发者和其用户(以下或称“玩家”)说明 TapSDK 的隐私安全信息,包括 TapSDK 各项服务处理的个人信息范围、处理目的、权限使用情况等。

Expand Down Expand Up @@ -381,7 +380,7 @@ sidebar_position: 8
<tr>
<th>个人信息/权限类型</th>
<th>个人信息/权限名称</th>
<th>使用目的</th>
<th>使用目的</th>
</tr >
<tr >
<td rowspan="7">必要个人信息/权限</td>
Expand Down Expand Up @@ -425,7 +424,7 @@ sidebar_position: 8
<tr>
<th>个人信息/权限类型</th>
<th>个人信息/权限名称</th>
<th>使用目的</th>
<th>使用目的</th>
</tr >
<tr >
<td rowspan="7">必要个人信息/权限</td>
Expand Down Expand Up @@ -460,6 +459,48 @@ sidebar_position: 8



**1.2.10 TapTap IAP**

1)功能介绍:提供 TapTap IAP(In App Purchase)能力,玩家可以通过 TapTap IAP 快速购买所需要的游戏道具,最终会通过微信支付、支付宝支付等方式完成支付。

2)收集信息/获取权限
<table>
<tr>
<th>个人信息/权限类型</th>
<th>个人信息/权限名称</th>
<th>使用目的</th>
</tr >
<tr >
<td rowspan="7">必要个人信息/权限</td>
<td>系统版本</td>
<td rowspan="7">为了确保设备系统兼容、定位解决问题</td>
</tr>
<tr>
<td>设备型号</td>
</tr>
<tr>
<td>设备 CPU 信息</td>
</tr>
<tr>
<td>网络类型</td>
</tr>
<tr>
<td>AndroidID</td>
</tr>
<tr>
<td>设备内存信息</td>
</tr>
<tr>
<td>手机样式</td>
</tr>
<tr>
<td>可选个人信息/权限</td>
<td>无</td>
<td>/</td>
</tr>
</table>



1.3 我们仅为实现 TapSDK 产品和/或服务功能,对所收集的用户个人信息进行处理。若需要将收集的个人信息用于其他目的,我们会以合理方式告知用户,并在获得用户的同意后进行使用。

Expand Down Expand Up @@ -503,7 +544,7 @@ sidebar_position: 8

3.2 转让

通常情况下,除非获得用户的明确同意,我们不会将用户的个人信息转让给任何公司、组织和个人,但以下情况除外:
通常情况下,除非获得用户的明确同意,我们不会将用户的个人信息转让给任何公司、组织和个人,但以下情况除外:
在涉及合并、收购、资产转让或类似的交易时,如涉及到个人信息转让,我们会要求新的持有用户个人信息的公司、组织以不低于本隐私政策所要求的标准继续保护用户的个人信息,否则,我们将要求该公司、组织重新向用户征求授权同意。

3.3 披露
Expand Down Expand Up @@ -602,4 +643,10 @@ TapSDK 个人信息保护负责人邮箱:`privacy@taptap.com`

我们将在 15 天内予以回复。

<small>本页面内容具有多种语言版本,若其他语言版本与简体中文版本发生冲突,应以简体中文版本为准。</small>
<small>本页面内容具有多种语言版本,若其他语言版本与简体中文版本发生冲突,应以简体中文版本为准。</small>






44 changes: 44 additions & 0 deletions cn/docs/sdk/start/compliance.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,50 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in


### 10. TapTap IAP

- 功能介绍

提供 TapTap IAP(In App Purchase) 能力,玩家可以通过 TapTap IAP 快速购买所需要的游戏道具,最终会通过微信支付、支付宝支付等方式完成支付。

- 合规调用时机

玩家触发游戏内道具购买时进行初始化和调用。

- 需要权限

| 权限 | 使用目的 | 权限申请时机 |
| ---------------------- | ---------------------- | ---------------------- |
| 网络权限 | 用于访问网络数据 | 用户首次使用该功能时会申请权限 |
| 获取网络状态 | 用于检测当前网络连接是否有效 | 用户首次使用该功能时会申请权限 |

- 关闭功能的配置方式

若要关闭,可在app目录build.gradle中移除对该功能的依赖(详见[文档](https://developer.taptap.cn/docs/sdk/update/guide/#tapsdk-%E5%88%9D%E5%A7%8B%E5%8C%96)),示例如下:

```
// implementation("com.taptap.android.payment:iap:latest")
// implementation("com.taptap.android.payment:base:latest")
// implementation("com.taptap.android.payment:alipaycn:latest")
// implementation("com.taptap.android.payment:wechat:latest")
```

- 必要个人信息

| 必要个人信息 | 使用目的 | 场景 | 收集频次 |
| ------ | ------ | ------ | ------ |
| 系统版本 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
| 设备型号 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
| 设备 CPU 信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
| 网络类型 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
| Android ID | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 初始化及用户发起授权时获取一次 |
| 设备内存信息 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |
| 手机样式 | 为了确保设备系统兼容、定位解决问题 | 遇到服务故障时针对性进行排查和优化 | 每次应用冷启动获取一次 |

- 可选个人信息



## **四、向最终用户披露 TapSDK 条款**

Expand Down
2 changes: 2 additions & 0 deletions cn/docs/sdk/start/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ TDS 提供以下技术服务,开发者可以通过在游戏中集成 TapSDK

- **APK 加固**:避免游戏包体被破解篡改,保障游戏安全。

- **内购服务**:TapTap 游戏内购服务为开发者提供了便捷高效的解决方案。接入该服务后,开发者可轻松开放游戏内购,无论是消耗型道具还是非消耗型道具,都能方便地上架售卖。同时,订单查看功能,让开发者对销售情况一目了然。

</Conditional>

使用对应的服务请先完成<Conditional region="cn">[开发者注册](https://developer.taptap.cn/)</Conditional><Conditional region="global">[开发者注册](https://developer.taptap.io/)</Conditional>,之后登录开发者中心开启「游戏服务」。
26 changes: 6 additions & 20 deletions cn/docs/sdk/tap-adn/tds-tapad.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -90,14 +90,6 @@ dependencies {
implementation "com.android.support:support-v4:28.0.0"
implementation "com.github.bumptech.glide:glide:4.9.0"
implementation 'com.android.support:recyclerview-v7:28.0.0'

// 如果引入了 oaid sdk 则不需要引入下述依赖
// 需要新增 maven 'https://developer.huawei.com/repo'
// implementation 'com.huawei.hms:ads-identifier:3.4.62.300'

// 如果引入了 oaid sdk 则不需要引入下述依赖
// 需要新增 maven 'https://developer.hihonor.com/repo'
// implementation 'com.hihonor.mcs:ads-identifier:1.0.3.300'
// 加入的依赖库-结束
// highlight-end
// 下面这行是 Unity 的 mainTemplate.gradle 自带的,帮助定位插入位置
Expand All @@ -119,8 +111,8 @@ dependencies {
:::tip
**TapADN SDK 从 3.16.3.10 版本开始更新了 glide 的依赖,glide 版本从 4.0.0 更新到了 4.9.0。**
:::
```groovy
repositories{
<CodeBlock className="groovy">
{`repositories{
flatDir{
dirs 'src/main/libs'
}
Expand All @@ -136,17 +128,9 @@ dependencies {
implementation "com.android.support:support-v4:28.0.0"
implementation "com.github.bumptech.glide:glide:4.9.0"
implementation 'com.android.support:recyclerview-v7:28.0.0'

// 如果引入了 oaid sdk 则不需要引入下述依赖
// 需要新增 maven 'https://developer.huawei.com/repo'
// implementation 'com.huawei.hms:ads-identifier:3.4.62.300'

// 如果引入了 oaid sdk 则不需要引入下述依赖
// 需要新增 maven 'https://developer.hihonor.com/repo'
// implementation 'com.hihonor.mcs:ads-identifier:1.0.3.300'
// ...
}
```
}`}
</CodeBlock>

</>

Expand Down Expand Up @@ -2015,3 +1999,5 @@ sign = fmt.Sprintf("%x", sha256.Sum256(trans_id:SecurityKey))
|**10007**| Request AdSpace Miss | |
|**10008**| Request AdSpace Not Match| |
|**10009**| Request Invalid DeviceId | |


5 changes: 5 additions & 0 deletions cn/docs/sdk/tap-iap/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"label": "内购服务",
"collapsed": true,
"position": 16
}
Loading
Loading