在应用程序侧集成SDK

常规购买逻辑

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

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

  1. 实现支付UI的打开逻辑:
Copy
Full screen
Small screen
val intent = XPayments.createIntentBuilder(this)
               .accessToken(<accessToken>)
               .isSandbox(<isSandbox>)
           	.setStatusReceivedCallback(object : StatusReceivedCallback {
               	override fun onSuccess(data: InvoicesDataResponse) {
                   		Log.d(TAG, "StatusReceivedCallback is fired. Result data = $data")
               	}
           	})
           	.build()
注:
查看显示项目了解实现示例。

支付UI打开方式

Android专用SDK提供三种应用内支付界面显示方式:

WebViewCustom TabsTrusted Web Activity
优点
  • 使应用内购买过程无缝衔接,因为用户不会看到从应用程序到网页之间的过渡。
  • 屏幕顶部没有标准工具栏。
  • Google Wallet和设备上其他支付服务原生集成。用户可以自动填写保存的数据,例如电子邮箱和银行卡详细信息等。
  • 使用特殊背景和淡入淡出效果支持平滑过渡到网页。
  • Google Wallet和设备上其他支付服务原生集成。用户可以自动填写保存的数据,例如电子邮箱和银行卡详细信息等。
  • 支持屏幕方向锁定。
  • 屏幕顶部没有标准工具栏。
缺点
  • 不支持Google Wallet等安全功能。
  • 不能自动填写保存的数据字段,例如电子邮箱、银行卡详细信息等。
  • 在覆盖应用的单独窗口中打开网页。
  • 功能因用户设备上的Chrome浏览器及其版本而异。
  • 不允许锁定屏幕方向。

WebView显示示例:

Custom Tabs显示示例:

Trusted Web Activity显示示例:

设置支付UI的打开方式

本SDK默认使用Custom Tabs。如Custom Tabs在用户设备上不可用,例如未安装合适的浏览器,则SDK就自动使用其他方式来打开支付UI:首先尝试WebView,然后尝试设备上默认安装的外部浏览器。

您可以用setActivityType方法来设置一个不同的支付UI首选打开方式。

示例:

Copy
Full screen
Small screen
XPayments.createIntentBuilder(this)
  .accessToken(AccessToken(token))
  .isSandbox(BuildConfig.IS_SANDBOX)
  .setActivityType(ActivityType.TRUSTED_WEB_ACTIVITY)
  .build()

在首选方式不可用的情况下,SDK按照以下顺序尝试其他方式:Trusted Web Activity > Custom Tabs > WebView > 设备上默认安装的外部浏览器。

注意

如希望安装Trusted Web Activity作为打开支付界面的主要方式,请联系您的客户成功经理或发送邮件至csm@xsolla.com

您需要提供以下信息:

关于Trusted Web Activity的更多信息,请参阅Google文档

设置支付UI关闭按钮

建议为支付UI设置一个关闭按钮,因为浏览器栏和标准导航元素在WebView和Trusted Web Activity中对用户不可见。要进行设置,请在ui.mobile参数的PaymentOptions对象中传入mobile = UiMobileProjectSettingHeader对象和closeButton=true参数。

您可以选择显示在按钮上的图标,方法是在closeButtonIcon参数中传入以下值之一:

  • “arrow” — 显示图标
  • “cross” — 显示×图标(默认使用)

PaymentOptions对象的示例:

Copy
Full screen
Small screen
val paymentOptions = PaymentOptions(
            isSandbox = isSandbox,
            settings = PaymentProjectSettings(
                ui = UiProjectSetting(mobile = MobileSettings(header = UiMobileProjectSettingHeader(closeButton = true, closeButtonIcon = "arrow"))),
                returnUrl = "app://xpayment.${getApplication<Application>().packageName}",
                redirectPolicy = SettingsRedirectPolicy(
                    redirectConditions = "any",
                    delay = 5,
                    statusForManualRedirection = "any",
                    redirectButtonCaption = "Back to the Game"
                )
            )
        )

在WebView和Trusted Web Activity中使用closeButton和closeButtonIcon参数的示例:

本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。
上次更新时间: 2024年9月5日

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

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