本主题介绍当玩家在 Google Play 应用中使用 Play 积分购买应用内商品后,您应如何在游戏内检测和交付相应的应用内商品。
当用户在 Google Play 应用中使用 Play 积分兑换应用内商品后,您就应该立即在游戏中交付相应的商品。下方的屏幕截图显示了用户如何使用 Play 积分购买商品。
| 1. 点击 Play Points。 | 1. 点击使用标签页以查看商品。 | 2. 选择一件商品,然后点击使用积分完成购买交易。 | 3. 接收相应商品。 |
|
|
|
|
在此示例中,当用户购买商品时游戏并未运行。用户还可以在设备上并未安装相应游戏的情况下用 Play 积分兑换商品。因此,您必须将游戏设计为在游戏内商店之外处理应用内商品交付。
准备工作
您必须先创建商品和 Play Points 促销活动,才能检测和交付应用内商品。
交付要求
当您通过 Play Points 促销活动在游戏中交付应用内商品时,必须遵守本部分所述的要求。
交付时间
当玩家使用 Play 积分兑换应用内商品时,请使用 Google Play 结算库及时交付商品。
交付消息
如果用户在游戏外购买了应用内商品,当用户返回游戏中时,游戏必须显示确认消息,表明商品已成功在游戏中交付。该消息应该会以弹出式对话框或游戏内消息的形式出现。用户应无需执行任何额外的步骤即可收到其商品。
以下是要求使用的消息格式:
一条明确的消息,表示用户已收到相应商品
明确指明商品的名称,并提及“Play 积分”,以确保用户能够将该商品与收到的其他内容区分开来。
商品的名称还必须包含该商品的正确面额(如果存在有多个面额的类似商品)。
弹出式对话框、消息或游戏内通知应该一直显示,直到用户点击继续或确定等按钮进行确认为止。 此类消息不应包含“取消”按钮,因为它仅用于通知用户在游戏中收到的商品。如果没有确认按钮,则该消息应至少显示 3 秒后才会消失,以确保用户知道他们已收到相应商品。
下面是一个消息示例:
“已收到商品!您刚刚使用 Play 积分兑换了 100 颗宝石。继续。”
用户应该会看到一个动画或一些视觉确认信息,显示他们的游戏代币余额有所增加。如果相应商品是耐用型或消耗型应用内商品,系统应将用户定向至商品解锁位置或可在游戏中找到该商品的位置。
检测在游戏外收到的商品
如果您的游戏使用 Google Play 的结算系统,请参阅检测和处理购买交易,以检测在游戏外获得的应用内商品。
显示交付确认消息
当用户兑换 Play 积分并获得兑换的商品时,他们希望游戏显示游戏内消息,或通过某种通知告知自己游戏已正确接收并处理该商品。请参阅通知用户以确认购买交易成功。
适用于特定游戏引擎的更新
以下是一些针对特定游戏引擎的注意事项:
如果您的游戏是使用 Unity 构建的,我们建议您验证您所使用的 IAP 实现是否已支持 Play Points 促销活动。
如果您的游戏是使用 Cocos2d-x 或 Unreal Engine (C/C++) 构建的,那么您很可能需要编写 JNI 代码来调用您 C/C++ 代码中的 Java API。
服务器端最佳做法
本部分包含适用于 Play Points 促销活动的服务器端最佳做法:
如果您在服务器上调用
Purchases.products: get,请确认您是否需要根据productId值将 Play 奖励兑换商品与其他应用内商品分开处理。如果您在服务器上使用
Inappproducts: list,请确认您是否需要通过productId值将 Play 奖励兑换商品与其他应用内商品区分开。查看以下最佳做法,确认您是否需要进行其他更改:
问题排查
本部分包含针对可导致客户咨询问题的情形给出的建议。
多个用户账号
如果用户的设备上有多个 Google 账号,而用户在错误的账号中兑换了 Play 积分,那么 Google 无法将相关商品转移到其他账号。同样,您的应用也无法通过调用 getPurchases() 方法转移相关商品。在这种情况下,不妨考虑通过客户服务人员的人工操作向用户提供应用内商品。
商品交付延迟或丢失
如果玩家遇到奖励商品交付延迟或丢失的情况,请参阅 Google Play 帮助文档中的应用内购买问题排查指南。