# SDK Android

### Installation

1. Ajoutez la ligne suivante dans votre fichier root `settings.gradle` dans les `repertoires` de la section `dependencyResolutionManagement`

```gradle
maven { url 'https://jitpack.io' }
```

2. Ajoutez ceci dans le fichier `build.gradle` de votre application dans la section `dependencies`

```gradle
implementation 'com.github.kkiapay:android-sdk:<latestVersion>'
```

### Usage&#x20;

Récupérez votre clé d'API sur [le tableau de bord kkiapay dans la section `Développeurs`](https://app.kkiapay.me/dashboard/developers/keys) et initialisez le SDK dans votre classe d'application.

#### Initialisez l'API

Dans la méthode onCreate de votre classe Application :

```javascript
import co.opensi.kkiapay.uikit.Kkiapay
import co.opensi.kkiapay.uikit.SdkConfig

Kkiapay.init(applicationContext,
    "<kkiapay-api-key>",
    SdkConfig(themeColor = R.color.colorPrimary,
        /* définissez enableSandbox à false si vous utilisez les clés d'API live */
        enableSandbox = true )
)
```

### Exemple

```gradle
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import co.opensi.kkiapay.uikit.Kkiapay
```

```gradle
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    override fun onStart() {
        super.onStart()

        // Configure le listener pour le statut de paiement
        Kkiapay.get().setListener { status, transactionId ->
            // Ce code s'exécutera à la fin du paiement
            Toast.makeText(
                this@MainActivity,
                "Transaction: ${status.name} -> $transactionId",
                Toast.LENGTH_LONG
            ).show()
        }
    }

    override fun onResume() {
        super.onResume()
        val testButtonWithKkiapay = findViewById<Button>(R.id.test_button_with_kkiapay)
        testButtonWithKkiapay.setOnClickListener {
            // commence le processus de paiement
            // Ceci affichera le widget de paiement à l'utilisateur
            Kkiapay.get().requestPayment(
                this,
                1,
                reason = "Paiement d'un service",
                api_key = "<kkiapay-api-key>",
                sandbox = false,
                name = "Johna DOE",
                partnerId = "AxXxxXXid",
                phone = "22961877882",
                email = "email@mail.com",
                paymentMethods = listOf("momo", "card", "direct_debit"),
            )
        }
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        Kkiapay.get().handleActivityResult(requestCode, resultCode, data)
    }

}
```

### Références

<table data-header-hidden><thead><tr><th width="210">Attribut</th><th width="138">Type</th><th width="94">Requis</th><th>Description</th></tr></thead><tbody><tr><td>Attribut</td><td>Type</td><td>Requis</td><td>Description</td></tr><tr><td>api_key</td><td>String</td><td>Oui</td><td>Votre clé d'API publique</td></tr><tr><td>amount</td><td>Number</td><td>Oui</td><td>Le montant à débiter au client</td></tr><tr><td>phone</td><td>String</td><td>Oui</td><td>Numéro de téléphone du client à débiter. Ex: 22967434270</td></tr><tr><td>name</td><td>String</td><td>Non</td><td>Nom et prénoms du client</td></tr><tr><td>email</td><td>String</td><td>Non</td><td>L'email du client</td></tr><tr><td>partnerId</td><td>String</td><td>Non</td><td>Votre id pour retrouver la transaction</td></tr><tr><td>paymentMethods</td><td>Array of string</td><td>Non</td><td>Les méthodes de paiement à autoriser sur le widget. Ex: ["momo","card"]</td></tr><tr><td>sandbox</td><td>Boolean</td><td>Non</td><td>La valeur <em><strong>true</strong></em> de cet attribut vous permet de passer en mode test</td></tr><tr><td>reason</td><td>String</td><td>Non</td><td>La raison de la transaction</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kkiapay.me/v1/plugin-et-sdk/sdk-android.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
