---
# System prepended metadata

title: SDK Android

---

![](https://i.imgur.com/ULmPUgP.jpg)
:arrow_left: [На Головну](/Mj2ZqCVpSq6A6Jzm6ladlw)

# SDK Android

:::info
[TOC]
:::

## Конфігурація проекту

По перше, необхідно встановити параметр **minSdkVersion=28** в **build.gradle** та додати залежність:
…


## Ініціалізація бібліотеки та здійснення платежу

Для ініціалізації бібліотеки та здійснення платежу необхідно передати в клас **Builder** наступні параметри:


**Kotlin**

```
  val payment: XPayLibPayment = XPayLibPayment {
        	this.partnerToken = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
        	this.transactionId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
        	this.googlePayGateway = "exampleGateway"
        	this.googlePayGatewayMerchantId = "exampleMerchantId"
        	this.terminalId = "111"
        	this.payeeEmail = "test@test.com"
        	this.payeePhone = "380xxxxxxxxx"
        	this.payeeUserId = "1"
        	this.payeeName = "Name"
        	this.currency = "UAH"
        	this.amount = 1.01
        	this.purpose = "purpose"
        	this.order = "example order"
        	this.site = "example site"
        	this.showOrderDetails = true
        	this.orderItemList = orderListData
        	this.visualData = visual
    	}
```

**Java**

```
  XPayLibPayment payment = new XPayLibPayment.Builder()
            	.setPartnerToken("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx")
            	.setTransactionId("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx")
            	.setGooglePayGateway("exampleGateway")
            	.setGooglePayGatewayMerchantId("exampleMerchantId")
            	.setTerminalId("111")
            	.setPayeeEmail("test@test.com")
            	.setPayeePhone("380xxxxxxxxx")
            	.setPayeeUserId("1")
            	.setPayeeName("Name")
            	.setCurrency("UAH")
            	.setAmount(1.01)
            	.setPurpose("purpose")
            	.setOrder("example order")
            	.setSite("example site")
            	.showOrderDetails(true)
            	.setOrderList(orderListData)
            	.setVisualData(visual)
            	.build();
```

де:
* **orderItemList** - список товарів типу List<OrderItem>.
* **OrderItem** - контейнер для опису одиниці товару. Конструктор даного класу приймає наступні параметри:
    - `orderItemTitle` типу *String* - назва товару,
    - `orderItemDescription` типу *String* - опис товару,
    - `price` типу *Double* - ціна товару.

**Приклад створення списку товарів:**

:::success

**Kotlin**
```
  val orderListData = listOf(
        	OrderItem(
            	"Apple iPad Pro 2022", "512Gb, WiFi, Silver", 1300.01
        	),
        	OrderItem(
            	"Apple iPhone 14 Pro", с512Gb, Silver", 1300.01
        	),
    	)
```

**Java**
```
  List<OrderItem> orderListData = new ArrayList<>();
  list.add(new OrderItem("MacBook Pro", "M2, 512Gb, Silver", 2500.99));
  list.add(new OrderItem("MacBook Air", "M2, 256Gb, Silver", 1500.99));
```
:::


Коли всі необхідні параметри встановлені, необхідно запустити платіжний екран:

**Kotlin**
```
  val requestCode = 123
  payment.startPaymentFrom(this, requestCode)
```
    
**Java**
```
  Int requestCode = 123;
  payment.startPaymentFrom(this, requestCode);
```


де:
* **requestCode** - код, за яким необхідно визначати, що платіж завершений та можна повертатися до головного екрану додатка.

Для цього необхідно в **Activity** (звідки був викликаний платіжний екран) реалізувати метод:

**Kotlin**

```
  override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    	super.onActivityResult(requestCode, resultCode, data)
    	if (requestCode == 13) {
        	if (resultCode == RESULT_OK) {
            	//TODO back to main screen
        	}
    }
}
```

**Java**
```
  @Override
	protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    	super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 13) {
        	if (resultCode == RESULT_OK) {
            	//TODO back to main screen
        	}
    }
}
```


## Кастомізація

**visualData** - обʼєкт класу VisualData, що відповідає за кастомізацію зовнішнього вигляду.

Щоб створити обʼєкт **visualData** необхідно скористатися **Builder** класом:

**Kotlin**
```
  val visual = XPayLibVisual {
        	this.orderItemCaptionColor = 0xFF111111
        	this.orderItemCaptionSize = 12
    	}
```

**Java**

```
  VisualData visual = new XPayLibVisual.Builder()
            	.setOrderItemCaptionColor(0xFF000000)
            	.setOrderItemCaptionSize(12)
            	.build();
```

Усі доступні **параметри** приведені нижче:

```
    	orderScreenTitle типу String
    	paymentScreenTitle типу String
    	orderTotalToPayCaption типу String
    	orderAmountCaption типу String
    	orderCommissionCaption типу String
    	orderPayButtonCaption типу String
    	paymentPayButtonCaption типу String
    	successfulBackToHomeScreenButtonCaption типу String
    	successfulSendButtonCaption типу String
    	unsuccessfulTryAnotherCardButtonCaption типу String
    	paymentRemoveCardCaption типу String
    	paymentRemoveCardSnackTitle типу String
    	paymentSaveDialogCaption типу String
    	paymentSaveCardCaption типу String
    	paymentSaveDialogAction типу String
    	paymentRemoveCardSnackAction типу String
    	paymentAmountCaption типу String
    	paymentMethodTitle типу String
    	paymentMethodCardCaption типу String
    	paymentMethodMyCardsCaption типу String
    	successfulSuccessfulCaption типу String
    	successfulReceiptByEmailCaption типу String
    	paymentMethodGoogleCaption типу String
    	successfulReceiptSentCaption типу String
    	unsuccessfulOperationError типу String
    	unsuccessfulRequestIdCaption типу String
    	unsuccessfulReasonCaption типу String
```

**Кольори та розміри:**

```
	screenTitleColor типу Long
	orderItemTitleColor типу Long
	orderItemTitleSize типу Int
	orderItemCaptionColor типу Long
	orderItemCaptionSize типу Int
	orderItemPriceColor типу Long
	orderItemPriceSize типу Int
	orderTotalPaymentCaptionColor типу Long
	orderTotalPaymentCaptionSize типу Int
	orderTotalPaymentPriceColor типу Long
	orderTotalPaymentPriceSize типу Int
	paymentAmountCaptionColor типу Long
	paymentAmountCaptionSize типу Int
	paymentAmountColor типу Long
	paymentAmountSize типу Int
	paymentMethodTitleColor типу Long
	paymentMethodTitleSize типу Int
	paymentMethodButtonCaptionColor типу Long
	paymentMethodButtonActivatedCaptionColor типу Long
	paymentMethodButtonCaptionSize типу Int
	paymentSaveCardCaptionColor типу Long
	paymentSaveCardCaptionSize типу Int
	paymentRemoveCardCaptionColor типу Long
	paymentRemoveCardBgColor типу Long
	paymentRemoveCardCaptionSize типу Int
	paymentResultTitleColor типу Long
	paymentResultTitleSize типу Int
	paymentErrorResultTitleColor типу Long
	paymentResultSubtitleColor типу Long
	paymentResultSubtitleSize типу Int
	paymentResultEmailTitleColor типу Long
	paymentResultEmailErrorColor типу Long
	paymentUnsuccessTableCaptionColor типу Long
	paymentUnsuccessTableValueColor типу Long
	paymentUnsuccessTableCaptionSize типу Int
	paymentUnsuccessTableValueSize типу Int
	buttonCaptionColor типу Long
	viewsMainDisabledBackgroundColor типу Long
	viewsMainBackgroundColor типу Long
```



![](https://i.imgur.com/17gAyWb.png)
:arrow_left: [На Головну](/Mj2ZqCVpSq6A6Jzm6ladlw)

<details>
<summary>Служба підтримки XPAY</summary>
</br>

Телефон: +38 093 891 92 00
Email: info@xpay.com.ua
Telegram: @xpaysupportbot
</details> 