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.Ş.