利用now.gg支付模块,可以在您的Unity游戏里实现应用内购买。
使用now.gg支付模块实现应用内购买需要:
now.gg支付Unity模块以Unity的包文件形式 nowgg-payments-login.unitypackage
被引入。
将模块添加到您的Unity工程中:
nowgg-payments-login.unitypackage
。Assets/Plugins/Android
目录中。导入now.gg支付模块并添加依赖项后,您可以按照此章节操作在您的应用程序/游戏中集成now.gg支付。
要运行now.gg IAP服务,需要使用now.gg平台。Unity IAP(或任何其他 IAP 服务)仅在非now.gg平台上运行时才能进行初始化。
检查当前运行的平台,在你的项目中添加以下代码,以便您的应用程序在now.gg平台上运行时Unity IAP不会被激活:
以下章节说明了now.gg IAP函数的实现,您可以从Unity的应用/游戏中调用这些函数。
首先创建一个包含now.gg IAP实现的类,并将其附加到一个可用于初始化应用内购买的游戏对象。
此步骤将允许您在应用/游戏中添加应用内购买产品,并初始化模块。比如,我们在以下代码中添加了两个IAP 可消耗型产品(IAP consumable products),它们分别是带有 productId
的 ‘coin1’ 和 ‘coin2’。我们还添加了一个带有 productId
的月包(‘monthlyPack’)的订阅(subscription)。
同样,您可以使用在 nowStudio 中添加的相应 productId
添加其他产品和订阅,如以下示例代码所示:
说明:
NowGGProductBuilder
类中。NowGGPaymentsSdkManager
类的 InitializeIap
函数被调用,以使用 PAYMENT_ID
初始始化支付模块。在成功初始化之后,您可以使用 productId
获取产品详情。
要获取产品详情,请参考以下实现:
参考资料:
获取了产品详情之后,您可以发起产品购买。为此,您需要调用如下所示的 PurchaseProduct()
函数:
参考资料:
以下方法展示了如何将购买的权利分配给用户:
我们提供了两种方式实现购买的消费:
我们提供了两种方式用于确认购买的订阅:
注意:
OnPurchaseProduct
中返回 PurchaseProcessingResult.Pending
。
参考资料:
purchaseToken
。orderId
。
对于有后端服务器的应用,应使用 consumePurchase
API 进行服务端的购买消费。
在验证购买之后,您应该将其标记为已消费。
购买的实现包括:
将购买的产品分配给用户。
通知now.gg该产品已被消费。
以下示例代码展示了使用 consumePurchase
API 的相关请求。
参考资料
consumePurchase
API之前,请确保将购买的产品分配给用户。Payments API Key
)可以在nowStudio的证书章节找到。 更多信息。acknowledgePurchase
API应被用于服务器端的订阅型产品的确认。
在验证购买之后,您应该将其标记为已确认。
下列示例代码展示了使用 acknowledgePurchase
API的相关请求。
参考资料
Payments API Key
)可以在nowStudio的证书章节找到。更多信息。如果您想在您的后端服务器上处理购买,或者您需要根据您的实现机制使用另一种方法来完成购买,您的应用应从 OnPurchaseProduct
返回 PurchaseProcessingResult.Pending
。
要完成购买流程,您可以使用 ConfirmPendingPurchase
方法通知 now.gg IAP服务,告知应用已经记录下该购买行为。
参考资料:
要想完成购买流程,且使用您的应用后端服务器对购买进行授权,则需要调用以下API:
如果您需要查询待处理的购买,您可以调用 NowGGPaymentsSdkManager
类的 QueryPendingPurchases
函数。此函数将会查询所有待处理的购买,并调用 OnPurchaseProduct
回调函数,返回待处理的购买。
参考资料:OnPurchaseProduct.
如果您想要获取其他产品以供购买,或是想要刷新现有产品的详细信息/元数据,那么您可以使用 FetchAdditionalProducts
函数,如下所示:
购买可能会由于各种各样的原因而导致失败,其中包括:
您可以通过参考下面的代码实现来对失败的购买进行调查和处理:
注意:
OnPurchaseFailed
函数相关的响应码 参考此处。本章节说明了 API 规范,以便您为我们提供 SubscriptionStatusCallback
API,用于发送订阅状态的更新。
下述是相关工作流程:
参考资料:Subscription Status Callback API。
您可以使用一下两种方法之一来验证购买:
验证购买的第一种方法是使用 verifyPurchase API。您可以使用此 API 向我们的后端服务器验证购买。
为验证购买, 从您应用的后端服务器用 purchaseToken
作为参数,调用 verifyPurchase API,如以下示例请求代码所示:
您可以在本地验证购买,也可以使用后端服务器,但是我们建议您使用后端服务器来验证购买。
您可以按照 此处列出的步骤 来生成公钥。
以下代码分别演示了在本地和使用后端服务器进行购买验证。您可以参考 演示应用程序工程(Demo project)了解更多详情。
下载包 包含了一个实现示例,用于使用后端服务器验证购买,您也可以参考编写自己的实现。
示例实现包括:
我们在下载包中提供了一个示例实现,用于本地验证购买的情况,您可以使用提供的示例来编写自己的实现。
在示例实现中:
PurchaseVerification
类的 VerifyPurchaseLocally
函数。