在应用程序侧集成SDK

常规购买逻辑

  1. 通过以下方式之一实现支付令牌的获取逻辑:
    • 使用Store库(推荐):
      1. 要购买单个商品,调用createOrderByItemSku方法。
      2. 要在购物车中购买多个商品:
        1. 用户将商品放入购物车后,调用fillCurrentCartWithItems方法。
        2. 调用createOrderFromCartByIdcreateOrderFromCurrentCart方法。

    • 使用IGS & BB API
    • 使用您自己的服务器方法或BaaS解决方案方法。

  1. 实现支付UI的打开逻辑:
注:
查看显示项目了解实现示例。
Copy
Full screen
Small screen
vmPurchase.paymentToken.observe(this) { token ->
    val intent = XPayments.createIntentBuilder(this)
        .accessToken(AccessToken(token))
        .isSandbox(BuildConfig.IS_SANDBOX)
        .useWebview(true)
        .build()
    startActivityForResult(intent, RC_PAYSTATION)
}
  1. 实现支付结果的处理:
Copy
Full screen
Small screen
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的示例:

您的进度
感谢您的反馈!
上次更新时间: 2024年3月21日

发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。

报告问题
我们非常重视内容质量。您的反馈将帮助我们做得更好。
请留下邮箱以便我们后续跟进
感谢您的反馈!