Skip to content

Client Callback (Intent)

Genel Bakış

Bu doküman, iş ortakları için Ödeal uygulaması ile Intent URL entegrasyonunun güncel teknik detaylarını açıklamaktadır. Entegrasyon, JSON veri alışverişi ile ödeme işlemlerini gerçekleştirmeyi sağlar.

Ön Gereksinimler

1. Profil Tipi Ayarı

Ödeal uygulamasında giriş yapan kullanıcının profil tipi EXTERNAL_BASKET_WITH_APP (APP2APP) olmalıdır.

Dikkat

Bu ayar olmadan ödeme alınması mümkün değildir.

2. Intent URL Tanımlaması ve Kayıt Süreci

Örnek URL Formatı:

https://www.samplejsonapp.ode.al

3. Manifest Ayarları

İş ortağı uygulamasının AndroidManifest.xml dosyasına Intent Filter eklenmelidir. launchMode değeri singleTop olmalıdır.

xml
<activity
    android:name=".MainActivity"
    android:exported="true"
    android:label="@string/app_name"
    android:launchMode="singleTop"
    android:theme="@style/Theme.MyApplication">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data
            android:host="www.samplejsonapp.ode.al"
            android:scheme="https" />
    </intent-filter>
</activity>

Entegrasyon Akışı ve Veri Yönleri

Gönderme Yöntemi (İş Ortağı → Ödeal)

Adım 1: Ödeal Uygulamasını Çağırma

Normal ödeme için:

kotlin
val intent = Intent().apply {
    action = Intent.ACTION_VIEW
    data = Uri.parse("https://basket.ode.al/basketReferanceCode")
    putExtra("isCancelled", false) // Normal ödeme için
}
startActivity(intent)

İptal Akışı

Bir iptal başlatmak için isCancelled ekstra değerini true olarak ayarlayın:

kotlin
val intent = Intent().apply {
    action = Intent.ACTION_VIEW
    data = Uri.parse("https://basket.ode.al/basketReferanceCode")
    putExtra("isCancelled", true) // İptal akışını başlatır
}
startActivity(intent)

Ödeal Uygulaması İçinde

Adım 2: Veriyi Alma ve İşleme (SplashActivity)

URL’den basketReferenceCode değerini çıkarın. Akışı belirlemek için isCancelled ekstra değerini kontrol edin.

java

boolean isCancelled = intent.getBooleanExtra("isCancelled", false);
if (isCancelled) {
    // İptal akışını başlat
} else {
    // Ödeme akışını başlat
}

Adım 3: Sepet Verisini Getirme

Alınan basketReferenceCode kullanılarak sepet detayları çekilir ve sepet doldurulur.

Adım 4: Ödeme veya İptal İşlemi

isCancelled true ise, Ödeal uygulaması iptal sürecini başlatır. Aksi halde ödeme işlemine devam edilir.

Geri Dönüş Metodu (Ödeal → Partner)

Adım 5: Sonuç Verisinin Hazırlanması

Başarılı Ödeme:

java
String intentUri = dataManager.getCloseAfterPayment();
intentUri += "?basketReferenceCode=" + dataManager.getBasketReferenceCode();
intentUri += "&reason=Ödeme başarıyla alındı";
intentUri += "&result=" + true;
paymentDataModel.setIntentUriForReturnApp(Uri.parse(intentUri));
intent = new Intent(Intent.ACTION_VIEW, paymentDataModel.getIntentUriForReturnApp());

İptal Edilen Ödeme:

java
String intentUri = dataManager.getCloseAfterPayment();
intentUri += "?basketReferenceCode=" + dataManager.getBasketReferenceCode();
intentUri += "&reason=Ödeme iptal edildi";
intentUri += "&result=" + false;
paymentDataModel.setIntentUriForReturnApp(Uri.parse(intentUri));
intent = new Intent(Intent.ACTION_VIEW, paymentDataModel.getIntentUriForReturnApp());

Adım 6: Partner Uygulamada Sonucun İşlenmesi

Geri dönen URI içinden ilgili alanları çıkarın ve ihtiyaca göre kullanın.

İptal Akışının Özeti

1- İptalin Başlatılması: Partner uygulama isCancelled = true olan bir intent gönderir.
2- İşleme: Ödeal uygulaması bu bayrağı algılar ve iptal sürecini başlatır.
3- Sonuç: İptal sonucu, ödeme akışıyla aynı deseni izleyen intent URI üzerinden geri gönderilir.

Önemli Noktalar

1- İptal akışını başlatmak için isCancelled = true kullanın
2- Normal ödeme akışı için isCancelled = false kullanın (veya hiç eklemeyin)
3- Her iki akış da sonuçları aynı intent URI mekanizmasıyla döner
4- Geri dönüş URI’sindeki result parametresi başarı/başarısızlık durumunu belirtir
5- Bu yapı,hem ödeme hem de iptal senaryolarını net bir şekilde dokümante eder.

Ödeal A.Ş.