
: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
```

:arrow_left: [На Головну](/Mj2ZqCVpSq6A6Jzm6ladlw)
<details>
<summary>Служба підтримки XPAY</summary>
</br>
Телефон: +38 093 891 92 00
Email: info@xpay.com.ua
Telegram: @xpaysupportbot
</details>