礼包系统开发指南
接入礼包系统之前,需完成应用配置。在 游戏服务 - 应用配置 中可获取 Client ID 和 Server Secret。请妥善保管这些信息,勿传给他人。
开始
礼包系统接入适用于有请求接口能力的游戏,目前尚未提供完全离线的兑换码服务。
根据您的使用场景,您可以灵活对接以下不同兑换接口之一完成兑换流程。
方式 | 接口名 | 需游戏方校验后台设置的兑换条件 | 需游戏方提供发送道具接口 |
---|---|---|---|
游戏方校验 | /api/v1.0/cdk/game/submit-check | ✓ | ✓ |
游戏方发送 | /api/v1.0/cdk/game/submit-send | ✗ | ✓ |
无服务器兑换 | /api/v1.0/cdk/game/submit-simple | ✗ | ✗ |
游戏方校验 Web | /api/v1.0/cdk/page/submit-check | ✓ | ✓ |
游戏方发送 Web | /api/v1.0/cdk/page/submit-send | ✗ | ✓ |
接入顺序
- 完成应用配置获取 Client ID 和 Server Secret 信息。
- 进入 运营工具-礼包系统-服务器配置 选择性填写游戏方服务器信息并在其中配置发送通知接收地址用来发送相应道具。
- 创建礼包活动导出兑换码,礼包配置完成准备测试。
- 根据实际业务场景使用对应兑换接口完成兑换。
兑换流程
兑换流程大致是:
- 根据接口文档提交 兑换码 与 配置信息等参数 给兑换接口。
- 兑换接口校验数据合法性。
- 兑换系统根据业务场景选择是否调用 游戏方提供的二次校验接口。(可选,当后台配置二次校验接口时会调用)
- 校验全部通过后根据不同接口判断是否调 用 游戏方提供的发送道具接口 完成兑换。(可选,当后台配置发送道具接口时会调用)
有三种不同的兑换接口可以进行兑换,整体对接流程只要对接其一接口即可完成:
名称 | 描述 |
---|---|
游戏方校验 | 如果您将使用服务器对接兑换系统,可以安全地保存密钥信息,并希望每次兑换时能通过您的应用程序来校验是否允许兑换,调用您的接口来发送道具,请使用此流程。 |
游戏方发送 | 如果您将使用服务器对接兑换系统,可以安全地保存密钥信息,并希望调用您的应用程序接口来发送每次兑换的道具,请使用此流程。 |
无服务器兑换 | 如果您希望不开发接口完成兑换流程,调用兑换接口后根据返回值来判断是否兑换失败,请使用此流程。 |
三种兑换场景
游戏方校验
当您请求兑换码 submit-check 接口进行兑换时,兑换系统会核对库存以及提交数据是否正确,兑换系统核对通过后会调用您在后台配置的二次校验接口并将后台设置的条件作为参数传给您来校验。
当您的接口校验通过后会继续将后台配置的奖品内容作为参数调用您的发送道具接口,当发送道具成功完成后本次兑换完成。
游戏方发送
当您请求兑换码 submit-send 接口进行兑换时,兑换系统会核对库存以及提交数据是否正确,核对完成后会继续将后台配置的奖品内容作为参数调用您的发送道具接口,当发送道具成功完成后本次兑换完成。
无服务器兑换
当您请求兑换码 submit-simple 接口进行兑换时,兑换系统会核对库存以及提交数据是否正确,兑换信息验证通过后本次兑换完成并将后台配置的道具信息返回给您。
对接兑换接口
游戏方二次校验规范
礼包活动在后台配置了自定义兑换条件后,使用带二次校验能力的接口进行兑换时,兑换系统会将此礼包活动的自定义兑换条件发送给游戏方进行二次校验,下图配置会对您在后台配置的接口发起如下请 求:
curl --location -g --request POST <后台配置的游戏方二次校验接口地址> \
--header 'Content-Type: application/json' \
--data-raw '{"activity_id":<后台活动ID>,"character_id":<用户ID>,"content":"[{\"condition\":\"level\",\"operate":\"gt\",\"value\":\"10\"}]","content_obj": [{"condition":"level","operate":"gt","value":"10"}],"ext":<兑换提交的ext参数>,"gift_code":<礼包码>,"nonce_str":"abcdc","server_code": <后台配置的code>,"sign":"42d2b58a8cd58b5e63d90524aaf63ef97e04f223","timestamp":1658825322,"custom":{<自定义维度>:[<自定义维度字段1>,<自定义维度字段2>]}}'
请在校验完成后返回带有特定字段的 JSON 返回值告诉兑换系统校验结果。
{
"status": true,
"errorCode": "字符串类型的错误code"
}
如果您希望返回字段命名风格保持一致也可以使用下划线命名风格返回信息。
{
"status": true,
"error_code": "字 符串类型的错误code"
}
如果您并不要求兑换系统知晓兑换的错误信息可以直接返回 非 200 HTTP code 表示兑换失败,或者返回 HTTP code 200 表示兑换成功。 这样就无需按兑换系统的格式来返回信息。
请求参数 | 类型 | 含义 |
---|---|---|
activity_id | 字符串 | 礼包活动 ID |
character_id | 字符串(长度不得超过 50 字符) | 兑换的用户 ID |
content | 字符串(嵌套 JSON 字符串) | 后台配置的自定义条件 |
content.condition | 字符串 | 自定义条件-key |
content.operate | 字符串 | 关系-详情见其他 |
content.value | 字符串 | 自定义条件-value |
content_obj | 对象数组(和 content 含义相同) | 后台配置的自定义条件 |
content_obj.condition | 字符串 | 自定义条件-key |
content_obj.operate | 字符串 | 关系-详情见其他 |
content_obj.value |