Integrar el SDK en el lado de la aplicación
Lógica de compra general
- Implemente la lógica para obtener tókenes de pago de una de las siguientes formas:
- Utilizando la biblioteca de Store (recomendado):
- Para comprar un solo artículo, llame al método
createOrderByItemSku
. - Para comprar los artículos de la cesta:
- Después de que el usuario haya llenado la cesta, llame al método
fillCurrentCartWithItems
. - Llame al método
createOrderFromCartById
ocreateOrderFromCurrentCart
.
- Después de que el usuario haya llenado la cesta, llame al método
- Para comprar un solo artículo, llame al método
- Utilizando la biblioteca de Store (recomendado):
- Usando la IGS API.
- Usando sus propios métodos de servidor o métodos de solución de BaaS (Back-end como servicio).
- Implemente la lógica de apertura de la interfaz de pago:
- kotlin
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()
Posibilidades de apertura de la interfaz de pago
El SDK para Android ofrece 3 formas de visualizar la interfaz de pago dentro de la aplicación:
WebView | Custom Tabs | Trusted Web Activity | |
---|---|---|---|
Ventajas |
|
|
|
Desventajas |
|
|
|
Ejemplo de visualización de WebView:
Ejemplo de visualización de Custom Tabs:
Ejemplo de visualización de Trusted Web Activity (Actividad web de confianza):
Establecer el método de apertura de la interfaz de pago
De forma predeterminada, el SDK utiliza Custom Tabs. Si Custom Tabs no está disponible en el dispositivo del usuario, p. ej., si no hay instalado un navegador adecuado, el SDK cambiará automáticamente a otros métodos para abrir la interfaz de pago: primero WebView y después en el navegador externo instalado por defecto en el dispositivo.
Puede establecer un método principal diferente para abrir la interfaz de pago usando el método setActivityType
.
Ejemplo:
- kotlin
XPayments.createIntentBuilder(this)
.accessToken(AccessToken(token))
.isSandbox(BuildConfig.IS_SANDBOX)
.setActivityType(ActivityType.TRUSTED_WEB_ACTIVITY)
.build()
Si el método principal no esté disponible, el SDK cambia a otros métodos en el siguiente orden: Trusted Web Activity > Custom Tabs > WebView > navegador externo instalado por defecto en el dispositivo.
Si desea instalar Trusted Web Activity como el método de apertura de la interfaz de pago, contacte con su gestor del éxito del cliente o envíe un correo electrónico a csm@xsolla.com.
Tendrá que facilitar la siguiente información:
del certificado de firma de su aplicaciónPara obtener más información sobre Trusted Web Activity, consulte la documentación de Google.
Establecer el botón de cierre de la interfaz de pago
Le recomendamos que establezca un botón de cierre para la interfaz de pago, ya que la barra del navegador y los elementos de navegación estándar no son visibles para el usuario en WebView y Trusted Web Activity. Para ello, en el objeto PaymentOptions
del parámetro ui.mobile
, transmita el objeto mobile = UiMobileProjectSettingHeader
con el parámetro closeButton=true
.
Puede seleccionar el icono que se mostrará en el botón. Para hacerlo, transmita uno de los siguientes valores en el parámetro closeButtonIcon
:
“arrow”
: para mostrar el icono ←“cross”
: para mostrar el icono × (utilizado por defecto)
Ejemplo del objeto PaymentOptions:
- kotlin
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"
)
)
)
Ejemplo de uso de los parámetros closeButton and closeButtonIcon en WebView y Trusted Web Activity:
¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.