在应用程序侧集成SDK
常规购买逻辑
- 通过以下方式之一实现支付令牌的获取逻辑:
- 使用Store库(推荐):
- 要购买单个商品,调用
createOrderByItemSku
方法。 - 要在购物车中购买多个商品:
- 用户将商品放入购物车后,调用
fillCurrentCartWithItems
方法。 - 调用
createOrderFromCartById
或createOrderFromCurrentCart
方法。
- 用户将商品放入购物车后,调用
- 要购买单个商品,调用
- 使用Store库(推荐):
- 使用IGS & BB API。
- 使用您自己的服务器方法或BaaS解决方案方法。
- 实现支付UI的打开逻辑:
注:
查看显示项目了解实现示例。
Copy
- kotlin
vmPurchase.paymentToken.observe(this) { token ->
val intent = XPayments.createIntentBuilder(this)
.accessToken(AccessToken(token))
.isSandbox(BuildConfig.IS_SANDBOX)
.useWebview(true)
.build()
startActivityForResult(intent, RC_PAYSTATION)
}
- 实现支付结果的处理:
Copy
- kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == RC_PAYSTATION) {
val (status, _) = XPayments.Result.fromResultIntent(data)
when (status) {
XPayments.Status.COMPLETED -> showSnack(getString(R.string.payment_completed))
XPayments.Status.CANCELLED -> showSnack(getString(R.string.payment_cancelled))
XPayments.Status.UNKNOWN -> showSnack(getString(R.string.payment_unknown))
}
}
}
注:
查看显示项目了解实现示例。
支付UI打开方式
根据向XPayments.createIntentBuilder
方法传入的参数,支付UI在WebView或Custom Tab中打开。
如果传入的是useWebview(true)
参数,始终使用WebView打开支付UI。
如满足以下条件,将使用Custom Tab:
- 调用
XPayments.createIntentBuilder
时未传入useWebview
参数或传入的是useWebview(false)
。 - 用户设备默认使用以下浏览器之一:
- Google Chrome
- 三星浏览器
- 华为浏览器
如使用的是其他浏览器,则不考虑XPayments.createIntentBuilder
方法的参数,始终在WebView中打开支付UI。
在WebView中,用户看不到浏览器栏和标准导航元素,这让游戏内购买过程流畅无缝。但您需要修改应用程序并添加←图标,以便用户可以在购买的任何阶段关闭支付UI。关于修改示例,请参阅演示应用程序。
在Custom Tab中,用户可以点击✖图标来关闭支付UI。
使用WebView的示例:
使用Custom Tab的示例:
您的进度
发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。