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.al3. Manifest Ayarları
İş ortağı uygulamasının AndroidManifest.xml dosyasına Intent Filter eklenmelidir. launchMode değeri singleTop olmalıdır.
<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:
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:
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.
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:
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:
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.

