Mobil Uygulamaya Ödeme Sistemi Nasıl Entegre Edilir?

Yazar: Fatih ŞahinYayın: 27 Ağu 2026Güncelleme: 7 Eyl 202617 dk Okuma

Mobil ödeme entegrasyonu; Apple In-App Purchase, Google Play Billing veya Stripe API'leri ile sağlanır. Geliştirme sürecinde PCI DSS güvenlik standartlarına uyum esastır.

Mobil Uygulamaya Ödeme Sistemi Nasıl Entegre Edilir? için öne çıkan görsel
Mobil Uygulamaya Ödeme Sistemi Nasıl Entegre Edilir? için öne çıkan görsel

Mobil ödeme altyapıları, modern yazılım ekosisteminde bir uygulamanın ticari başarısını ve operasyonel sürdürülebilirliğini belirleyen en kritik mimari bileşendir. Bir yazılım projesinde dijital abonelikler, sanal ürünler veya fiziksel e-ticaret süreçleri yürütülürken Mobil Uygulamaya Ödeme Sistemi Nasıl Entegre Edilir? sorusunun doğru yanıtlanması; mağaza uyumluluğu, kullanıcı deneyimi ve finansal güvenlik açısından hayati rol oynar. Bu rehber; Apple In-App Purchase, Google Play Billing ve Stripe gibi harici ağ geçitlerinin mimarisini, PCI DSS güvenlik standartlarını, SDK ve REST API entegrasyon süreçlerini teknik karar vericiler ve işletme sahipleri için tüm yönleriyle ele almaktadır.

Mobil Ödeme Entegrasyonunda Temel İş Kuralları ve Yaklaşımlar

Mobil uygulama ekosisteminde gelir akışı oluşturmak, yalnızca bir ödeme formunu ekrana yerleştirmekten ibaret değildir. Apple App Store ve Google Play Store, kendi platformları üzerinde yürütülen finansal işlemleri katı kurallara bağlamıştır. Bu kuralların merkezinde, satılan varlığın dijital mi yoksa fiziksel mi olduğu ayrımı yer alır. Yanlış mimari ve regülasyon seçimi, uygulamanın mağazadan tamamen kaldırılmasına (rejection) veya ticari faaliyetlerin durdurulmasına yol açabilir.

Bir mobil yazılım projesinde mimari kurgulanırken, gelir modelinin hangi regülasyona tabi olduğu ilk gün belirlenmelidir. Dijital içeriklerin harici ödeme ağ geçitleriyle satılmaya çalışılması mağaza reddine yol açarken; fiziksel ürünlerin uygulama içi satın alma (IAP) ile sunulması operasyonel kârlılığı imkansız kılan yüksek komisyon oranları doğurur. Dolayısıyla mobil ödeme mühendisliği, ürünün doğasıyla platform politikalarının kusursuz eşleşmesini gerektirir.

Dijital Ürünler İçin: In-App Purchase (Uygulama İçi Satın Alma)

Uygulama içinde tüketilen, kilidi açılan veya doğrudan cihaz üzerinde fayda sağlayan tüm meta veriler, dijital ürün sınıfına girer. E-kitaplar, oyun içi para birimleri, SaaS yazılım abonelikleri (örneğin bulut depolama veya analitik araçları), premium filtreler ve üyelik seviyeleri bu kapsamdadır. Apple App Store Review Guidelines (özellikle Madde 3.1.1) ve Google Play Developer Program Policy gereğince, bu tür varlıkların satışında platformların kendi uygulama içi satın alma mekanizmaları (Apple In-App Purchase ve Google Play Billing) zorunludur.

Uygulama İçi Satın Alma (IAP) mimarisinde kullanıcı, kredi kartı bilgisini uygulamanıza vermez. Ödeme, doğrudan kullanıcının Apple ID veya Google Hesabına bağlı kayıtlı ödeme yöntemi (kredi kartı, operatör faturası, hediye kartı) üzerinden tahsil edilir. Bu durum kullanıcı tarafında güven ve tek dokunuşla satın alma kolaylığı sağlarken, geliştirici tarafında komisyon maliyetleri ve katı lisanslama süreçlerini beraberinde getirir.

IAP entegrasyonu teknik olarak dört temel ürün tipini destekler:

  • Tüketilebilir (Consumable): Oyun içi canlar, jetonlar gibi harcandıkça yeniden alınması gereken ürünler.

  • Tüketilemez (Non-Consumable): Reklamları kaldırma veya ömür boyu pro sürüm açma gibi bir defa alınıp kalıcı olan özellikler.

  • Otomatik Yenilenen Abonelikler (Auto-Renewable Subscriptions): Aylık/yıllık periyotlarla yinelenen SaaS ve içerik abonelikleri.

  • Yenilenmeyen Abonelikler (Non-Renewing Subscriptions): Belirli bir süre (örneğin 1 sezonluk spor paketi) geçerli olan ve otomatik yenilenmeyen üyelikler.

Fiziksel Ürün ve Hizmetler İçin: 3. Parti Ödeme Ağ Geçitleri (Payment Gateways)

Satışı yapılan değer, uygulamanın dışındaki fiziksel dünyada gerçekleşen bir mal veya hizmet ise mağaza kuralları harici Sanal POS ve Payment Gateway altyapılarının kullanımına izin verir. E-ticaret uygulamaları (kıyafet, elektronik eşya satışı), yemek siparişi ve market teslimat platformları, taksi/ulaşım çağırma servisleri ve otel rezervasyon sistemleri bu kategoriye girer. Bu senaryolarda Apple ve Google, geliştiricileri IAP kullanmaya zorlamaz; aksine IAP kullanımına izin vermez.

Fiziksel ürün modellerinde Stripe, Braintree, Iyzico veya PayTR gibi üçüncü parti ödeme sağlayıcılarının mobil SDK ve API altyapıları entegre edilir. Bu entegrasyon modelinde geliştirici, banka komisyon oranlarını doğrudan yönetir (%1,5 ila %3,5 bandında), ödeme akışında taksit seçenekleri sunabilir ve doğrudan kendi ticari banka hesabına mutabakat sağlayabilir. Ancak bu özgürlük, beraberinde veri güvenliği, tokenizasyon ve PCI DSS standartlarına tam uyum sorumluluğunu getirir.

Dijital Ürün Satışları: Apple ve Google Altyapılarını Kullanmak

Dijital ürünlerin satışı, mobil işletim sistemlerinin çekirdek kütüphaneleri aracılığıyla yürütülür. iOS tarafında StoreKit 2, Android tarafında ise Google Play Billing Library (v6 ve üzeri) güncel standartları oluşturur. Her iki platform da istemci (client) tarafındaki satın alma tetiklemelerinin sunucu (backend) tarafında doğrulanmasını zorunlu kılan bir "Server-to-Server Verification" mimarisiyle çalışır.

Mobil uygulamanın doğrudan cihaz üzerinden satın almayı onaylayıp kullanıcıya hak tanımlaması, en kritik güvenlik açıklarından biridir. Jailbreak yapılmış iOS cihazlar veya root edilmiş Android cihazlar, istemci tarafındaki API yanıtlarını manipüle ederek bedelsiz satın alma yanılsaması oluşturabilir. Bu sebeple kurumsal mimarilerde istemci yalnızca satın alma işlemini başlatır ve mağazadan dönen kriptografik makbuzu (receipt / purchase token) kendi merkezi sunucusuna iletir.

ParametreApple In-App Purchase (StoreKit 2)Google Play Billing Library (v6+)
İstemci KütüphanesiSwift StoreKit APIGoogle Play Billing SDK
Doğrulama YöntemiApp Store Server API (JWS formatı)Google Play Developer API
Bildirim AltyapısıApp Store Server Notifications V2Google Cloud Pub/Sub Topics
Standart Komisyon%30 (Küçük İşletme Programı ile %15)İlk 1M$ için %15, sonrası %30
Abonelik İadesi YönetimiApple Server API üzerinden takipGoogle Play Real-Time Developer Notifications

İstemci Kütüphanesi

Apple In-App Purchase (StoreKit 2)

Swift StoreKit API

Google Play Billing Library (v6+)

Google Play Billing SDK

Doğrulama Yöntemi

Apple In-App Purchase (StoreKit 2)

App Store Server API (JWS formatı)

Google Play Billing Library (v6+)

Google Play Developer API

Bildirim Altyapısı

Apple In-App Purchase (StoreKit 2)

App Store Server Notifications V2

Google Play Billing Library (v6+)

Google Cloud Pub/Sub Topics

Standart Komisyon

Apple In-App Purchase (StoreKit 2)

%30 (Küçük İşletme Programı ile %15)

Google Play Billing Library (v6+)

İlk 1M$ için %15, sonrası %30

Abonelik İadesi Yönetimi

Apple In-App Purchase (StoreKit 2)

Apple Server API üzerinden takip

Google Play Billing Library (v6+)

Google Play Real-Time Developer Notifications

Apple In-App Purchase (IAP) Kurulum Adımları ve Sertifikasyon

Apple ekosisteminde IAP entegrasyonu, Apple Developer hesabı üzerinde "Paid Applications Agreement" sözleşmesinin onaylanması ve vergi/banka bilgilerinin eksiksiz girilmesiyle başlar. Bu idari adım tamamlanmadan App Store Connect üzerinde ürün tanımlaması yapılamaz ve StoreKit API'leri test ortamında dahi çalışmaz.

Teknik kurulum süreci şu operasyonel aşamalardan oluşur:

  1. App Store Connect Yapılandırması: Her dijital ürün için benzersiz bir product_id (örneğin: com.myapp.premium) tanımlanır. Fiyatlandırma matrisinden ilgili tier seçilir ve yerelleştirilmiş ürün açıklamaları girilir.

  2. StoreKit 2 İstemci Entegrasyonu: Modern iOS mimarisinde Swift Product.products(for:) metodu ile ürün bilgileri çekilir, purchase() ile satın alma arayüzü çağrılır ve dönen VerificationResult işlenir.

  3. App Store Server API ve JWS Doğrulaması: Satın alma işlemi tamamlandığında Apple, JSON Web Signature (JWS) formatında imzalanmış bir işlem verisi döner. Backend sunucusu, Apple'ın genel kök sertifikalarını kullanarak bu JWS imzasını doğrular ve veritabanında kullanıcıya hak tanımlar.

  4. App Store Server Notifications V2: Aboneliklerin yenilenmesi, iptali, ödeme hatası veya iadesi durumlarında Apple'ın webhook bildirimlerini dinlemek üzere HTTPS tabanlı bir uç nokta (endpoint) yapılandırılır.

+-----------------------------------------------------------------------------------+
|                        APPLE STOREKIT 2 ENTEGRASYON DÖNGÜSÜ                       |
+-----------------------------------------------------------------------------------+
|  [ Mobil İstemci (iOS) ]                                                          |
|       |                                                                           |
|       |---> 1. Product.products(for: ["sub_monthly"])                             |
|       |<--- 2. Ürün Bilgisi ve Fiyat Matrisi                                      |
|       |                                                                           |
|       |---> 3. product.purchase()  ===> [ Apple App Store Ödeme Sayfası ]         |
|       |<--- 4. İmzalı JWS Receipt <==== [ Biyometrik Onay / Apple ID ]            |
|       |                                                                           |
|       |---> 5. POST /api/verify-receipt (JWS Verisi)                              |
|       |                                                                           |
|  [ Şirket Backend Sunucusu ]                                                      |
|       |                                                                           |
|       |---> 6. Apple App Store Server API (JWS Kök Sertifika Doğrulaması)         |
|       |<--- 7. Doğrulanmış Abonelik Durumu ve Bitiş Tarihi                        |
|       |                                                                           |
|       |---> 8. Veritabanında Kullanıcıya 'Premium' Rolünün Tanımlanması           |
|       |<--- 9. Başarılı İşlem Yanıtı (HTTP 200 OK)                                |
|       |                                                                           |
|  [ Mobil İstemci (iOS) ]                                                          |
|       |                                                                           |
|       +---> 10. Premium İçeriğin Kullanıcıya Açılması                             |
+-----------------------------------------------------------------------------------+

Google Play Billing API Entegrasyonu

Android ekosisteminde dijital ürünler, Google Play Console üzerinde yapılandırılır. Google Play Billing Library, Kotlin veya Java tabanlı native projelerde doğrudan bağımlılık olarak eklenir. Cross-platform çatılarda ise (Flutter, React Native) platforma özgü köprü modülleri kullanılır.

Google Play Billing yaşam döngüsü şu aşamalardan geçer:

  • BillingClient nesnesinin başlatılması ve Google Play servislerine asenkron bağlantı kurulması (startConnection()).

  • QueryProductDetailsParams ile satışa sunulan dijital ürün listesinin ve dinamik fiyat tekliflerinin (base plan ve offers) sorgulanması.

  • launchBillingFlow tetiklenerek kullanıcının karşısına yerel Android ödeme arayüzünün çıkarılması.

  • Satın alma başarılı olduğunda dönen Purchase nesnesi içerisindeki purchaseToken bilgisinin backend sistemine iletilmesi.

  • Kritik Adım - Acknowledge İşlemi: Google Play kuralları gereği, satın alınan bir ürün 3 gün içinde backend veya istemci tarafından acknowledge edilmezse Google işlemi otomatik olarak iptal eder ve parayı kullanıcıya iade eder. Bu sebeple backend sunucusu androidpublisher API'si ile doğrulamayı yapıp ardından işlemi derhal onaylamalıdır.

  • Google Cloud Pub/Sub: Gerçek zamanlı geliştirici bildirimleri (RTDN) için Google Cloud Pub/Sub konusu oluşturulur ve Play Console'a bağlanarak abonelik yaşam döngüsü olayları dinlenir.

Mağaza Komisyon Oranları ve İhlal Riskleri

Apple ve Google, platform standartlarında brüt gelir üzerinden %30 komisyon kesintisi uygular. Ancak küçük ölçekli geliştiricileri desteklemek adına her iki platform da indirimli komisyon programları sunmaktadır:

  • Apple App Store Small Business Program: Yıllık brüt geliri 1 milyon Amerikan Dolarının altında olan şirketler için IAP komisyon oranı %15'e düşürülür. Eşiğin aşılması durumunda standart %30 devreye girer.

  • Google Play %15 Komisyon Kadamesi: Google, her geliştirici hesabının elde ettiği ilk 1 milyon dolarlık yıllık gelir için komisyonu %15 olarak uygular; bu tutarı aşan kısım %30 üzerinden ücretlendirilir.

  • Yıllık Abonelik İndirimi: Her iki platformda da bir kullanıcı aynı otomatik yenilenen abonelikte kesintisiz 12 ayı tamamladığında, komisyon oranı takip eden dönemler için otomatik olarak %15'e iner.

Platform politikalarını ihlal etmek ağır yaptırımlara gebedir. Dijital bir ürün için uygulamanın içine harici bir kredi kartı formu koymak veya kullanıcıyı web sitesindeki ödeme sayfasına yönlendiren açık bağlantılar yerleştirmek (bazı ülkelerdeki antitröst istisnaları hariç), uygulamanın App Store ve Play Store'dan derhal reddedilmesine veya geliştirici hesabının kalıcı olarak kapatılmasına (account termination) neden olur.

Fiziksel Ürünler İçin 3. Parti Ödeme Sistemi Entegrasyonu

Fiziksel ürün satışı veya gerçek dünya hizmetlerinin sunulduğu mobil uygulamalarda, harici ödeme ağ geçitleri (Payment Gateways) ve Sanal POS altyapıları kullanılır. Bu sistemler, mobil istemci ile bankacılık altyapısı arasında güvenli bir köprü kurar. Başarılı bir entegrasyon; kullanıcı deneyimini bozmayan, sepet terk oranını minimuma indiren ve güvenliği sağlayan bir mimari gerektirir.

Harici ödeme altyapılarında en yaygın mimari model, sağlayıcının mobil SDK'si (Software Development Kit) ile istemci tarafında kart bilgilerinin güvenle toplanıp token haline getirilmesi ve ödeme emrinin backend sunucusu üzerinden REST API aracılığıyla bankaya iletilmesidir. Bu model, hassas kart verilerinin asla kendi uygulama sunucularınıza temas etmemesini garanti eder.

Doğru Ödeme Sağlayıcısını Seçmek (Stripe, Iyzico, PayTR, Braintree)

Ödeme sağlayıcısı seçimi; hedef pazarın coğrafi dağılımına, para birimlerine, desteklenen yerel ödeme yöntemlerine ve komisyon yapılarına göre stratejik olarak yapılmalıdır:

  • Stripe: Global pazarı hedefleyen uygulamalar için endüstri standardıdır. 135'ten fazla para birimini, Apple Pay, Google Pay ve yerel cüzdanları destekler. Stripe Elements ve mobil SDK'leri geliştirici deneyimi açısından gelişmiştir.

  • Iyzico: Türkiye pazarında yaygın olarak tercih edilen, yerel kart programlarına (Bonus, Maximum, World vb.) taksit imkanı sunan ve dinamik 3D Secure desteği sağlayan bir sağlayıcıdır. Mobil SDK ve mobil web ödeme çözümleri bulunur.

  • PayTR: Düşük komisyon oranları, ertesi gün ödeme avantajları ve yüksek işlem geçiş oranlarıyla öne çıkan Türkiye odaklı bir diğer Sanal POS çözümüdür. İframe ve API tabanlı mobil entegrasyon modelleri sunar.

  • Braintree (A PayPal Service): Özellikle küresel ölçekte PayPal bakiyesi ve kredi kartı işlemlerini tek bir mobil SDK üzerinden hibrit olarak toplamak isteyen projeler için optimize edilmiştir.

API ve SDK (Software Development Kit) Kullanımı

Mobil uygulamalarda doğrudan ham API çağrıları ile kredi kartı formu yönetmek yerine sağlayıcıların resmi mobil SDK'lerini kullanmak hem güvenlik hem de regülasyon açısından zorunludur. Stripe iOS SDK, Stripe Android SDK veya Iyzico Mobile SDK gibi araçlar, kart verilerini kullanıcının cihazında izole bir sandbox içinde işler.

SDK tabanlı entegrasyon akışı şu teknik basamakları içerir:

  1. Payment Intent Oluşturma: Kullanıcı ödeme aşamasına geldiğinde, mobil uygulama backend sunucunuza bir istek gönderir (/create-payment-intent). Backend, ödeme sağlayıcısının API'sine bağlanarak tutar ve para birimini içeren bir oturum (Payment Intent) oluşturur ve istemciye bir client_secret anahtarı döner.

  2. Ödeme Formunun Sunulması: Mobil uygulama, aldığı client_secret ile SDK'nin önceden hazırlanmış güvenli kart formunu (örneğin PaymentSheet) ekrana basar. Kart bilgileri doğrudan ödeme sağlayıcısının sunucularına iletilir.

  3. İstemci Onayı: Sağlayıcı sunucusu kartı doğrular, gerekiyorsa 3D Secure ekranını kullanıcıya açar ve işlem sonucunu şifreli bir token olarak istemciye iletir.

+-----------------------------------------------------------------------------------+
|                   3. PARTİ ÖDEME AĞ GEÇİDİ (SDK & API) AKIŞI                      |
+-----------------------------------------------------------------------------------+
|  [ Mobil İstemci ]                                                                |
|       |                                                                           |
|       |---> 1. Satın Alma İsteği (Sepet Detayı, Tutar)                            |
|       |                                                                           |
|  [ Şirket Backend ]                                                               |
|       |                                                                           |
|       |---> 2. POST /v1/payment_intents (API Key ile)                             |
|       |<--- 3. Payment Intent ID + client_secret                                  |
|       |                                                                           |
|  [ Mobil İstemci ]                                                                |
|       |<--- 4. client_secret İletimi                                              |
|       |                                                                           |
|       |---> 5. Ödeme Formu / Biyometrik Kart Girişi (Sağlayıcı SDK'si)            |
|       |                                                                           |
|  [ Ödeme Sağlayıcısı (Stripe / Iyzico Sunucusu) ]                                 |
|       |                                                                           |
|       |<--- 6. Kart Verisi Doğrudan SDK'den Sağlayıcıya Gider (Tokenization)      |
|       |---> 7. 3D Secure Doğrulaması (Gerekirse Banka Ekranı Açılır)              |
|       |<--- 8. Başarılı İşlem Token'ı                                             |
|       |                                                                           |
|  [ Şirket Webhook Endpoint'i ]                                                    |
|       |                                                                           |
|       |<=== 9. Asenkron Bildirim: payment_intent.succeeded (Webhook İmzalı)       |
|       |---> 10. Siparişin Veritabanında Onaylanması ve Fatura Kesilmesi           |
+-----------------------------------------------------------------------------------+

Webhook Yapılandırması ve Senkronizasyon

Mobil ağlar doğası gereği kararsızdır. Kullanıcı ödeme butonuna bastıktan ve banka işlemi onayladıktan hemen sonra cihazın interneti kesilebilir, uygulama arka plana atılabilir veya telefonun şarjı bitebilir. Bu gibi senaryolarda ödeme durumu istemciye ulaşamazsa, kullanıcının kartından para çekildiği halde sipariş veritabanında "ödenmedi" olarak kalabilir.

Bu mimari risk, Webhook Dinleme Mekanizması ile çözülür:

  • Ödeme sağlayıcısı, işlem başarıyla tamamlandığında veya başarısız olduğunda, önceden tanımlanmış backend sunucunuzun URL'sine asenkron bir HTTP POST isteği (webhook event) fırlatır.

  • Backend sunucusu, bu isteğin başlığında (header) yer alan kriptografik imzayı (signature verification) kontrol ederek bildirimin gerçekten ödeme sağlayıcısından geldiğini doğrular.

  • İmza geçerliyse işlem veritabanında güncellenir ve kullanıcıya hizmeti teslim edilir. Webhook dinleyicisi Idempotency prensibine göre tasarlanmalıdır; yani aynı webhook çağrısı ağ tekrarları sebebiyle üç kez gelse dahi işlem veritabanında yalnızca bir kez çalıştırılmalıdır.

Ödeme Sistemlerinde Kritik Güvenlik Standartları ve Risk Yönetimi

Mobil ödeme entegrasyonlarında güvenlik, teknik bir detay değil yasal ve finansal bir zorunluluktur. Kart verilerinin çalınması veya yetkisiz işlemler; ağır idari para cezalarına, kart şemalarından (Visa, Mastercard) men edilmeye ve geri döndürülemez itibar kaybına neden olur. Bu nedenle güvenlik katmanı, yazılım mimarisinin çekirdeğine entegre edilmelidir.

Uygulamanın ağ trafiği istisnasız olarak TLS 1.3 protokolü üzerinden şifrelenmeli ve "SSL Pinning" (Sertifika Sabitleme) teknikleri kullanılarak araya girme (Man-in-the-Middle - MitM) saldırılarına karşı mobil istemci seviyesinde koruma sağlanmalıdır.

PCI DSS Uyumluluğu: Yasal Zorunluluklar ve İhlal Cezaları

PCI DSS (Payment Card Industry Data Security Standard), kredi kartı bilgilerini işleyen, ileten veya saklayan tüm kurumların uymak zorunda olduğu küresel bir güvenlik standardıdır. Bu standart, 12 temel gereksinim ve yüzlerce alt kontrolden oluşur.

Bir mobil uygulama geliştirirken en kritik kural şudur: Kredi kartının 16 haneli Primary Account Number (PAN) numarasını, CVV/CVC güvenlik kodunu ve son kullanma tarihini asla kendi sunucu veritabanlarınızda düz metin (plain text) veya şifrelenmiş olarak SAKLAMAYINIZ. Kendi sunucularınızda kart verisi saklamak, uygulamanızı en üst düzey PCI DSS Seviye 1 denetimlerine tabi kılar ve bu durum yüz binlerce dolarlık güvenlik denetim maliyeti yaratır.

Bunun yerine sağlayıcıların SDK'leri üzerinden form göstererek PCI DSS SAQ A (Self-Assessment Questionnaire A) kapsamına girmek en rasyonel yaklaşımdır. Bu kapsamda kart verisi hiçbir zaman sunucunuza uğramaz; sorumluluk tamamen lisanslı ödeme kuruluşuna devreder.

Tokenizasyon (Tokenization) ve Hassas Veri Şifreleme

Tokenizasyon; hassas kredi kartı verilerinin, matematiksel olarak kart numarasına geri döndürülemeyen rastgele üretilmiş alfanümerik bir kimlikle (Token) değiştirilmesi sürecidir.

Kullanıcı mobil uygulamaya kart bilgilerini girdiğinde:

  1. Sağlayıcı SDK'si bu bilgileri doğrudan kendi güvenli donanım güvenlik modülüne (HSM) iletir.

  2. Kart verisi şifrelenerek sağlayıcının kasasına (vault) kilitlenir.

  3. Uygulamanıza geriye sadece tok_1N4xK2Lkd... formatında bir token döner.

  4. Gelecekteki abonelik tahsilatları veya tek tıkla ödeme (stored card) senaryoları için veritabanınızda yalnızca bu token saklanır. Token çalınsa dahi başka hiçbir sistemde veya sağlayıcıda kullanılamaz, tamamen değersizdir.

3D Secure 2.0 Entegrasyonu ve Fraud (Dolandırıcılık) Önleme

3D Secure 2.0 (3DS2), mobil cihazlar için optimize edilmiş yeni nesil kimlik doğrulama protokolüdür. Eski 3DS1 sistemlerindeki yavaş ve mobil uyumsuz web yönlendirmelerinin aksine, 3DS2 arka planda cihaz kimliği, IP adresi, coğrafi konum ve harcama alışkanlıkları gibi 100'den fazla veri parametresini bankaya iletir.

3DS2 entegrasyonunun işletmeye sağladığı iki temel avantaj vardır:

  • Sürtünmesiz Akış (Frictionless Flow): İşlem banka tarafından düşük riskli algılanırsa kullanıcıya SMS şifresi sormadan arka planda ödeme onaylanır. Bu durum mobil ödeme dönüşüm oranlarını doğrudan artırır.

  • Sorumluluk Değişimi (Liability Shift): 3D Secure doğrulamasıyla yapılan işlemlerde, kullanıcının daha sonra "bu işlemi ben yapmadım" diyerek yaptığı çalıntı kart itirazlarında (fraud chargeback) finansal sorumluluk işletmeden çıkarak kartı ihraç eden bankaya (issuer) geçer.

Mobil Ödeme Entegrasyonu İçin Adım Adım Geliştirme Süreci

Mobil uygulamaya ödeme altyapısı kurmak, dikkatli bir mühendislik planlaması gerektirir. Süreç, test hesaplarının açılmasından canlı ortamda ilk gerçek kuruşun tahsil edilmesine kadar birbirini izleyen doğrusal aşamalardan oluşur.

Bir ödeme akışının geliştirilmesinde en çok ihmal edilen kısım, sınır durumların (edge cases) test edilmesidir. Kart limitinin yetersiz olması, 3D Secure SMS kodunun zaman aşımına uğraması, internet bağlantısının kopması veya mükerrer tıklamalar gibi senaryolar doğru yönetilmediğinde finansal ve operasyonel karmaşa kaçınılmaz hale gelir.

SÜREÇ ADIMLARI

Uçtan Uca Mobil Ödeme Entegrasyon Süreci

Başarılı bir ödeme altyapısı kurulumu için uygulanması gereken operasyonel adımlar:

01

Geliştirici Hesapları ve Yetkilendirme

Apple Developer, Google Play Console veya Stripe panelinde API anahtarlarını oluşturun.

02

Sandbox Ortamında Simülasyon

Test kartları ve StoreKit sandbox hesapları ile tüm başarılı/başarısız senaryoları simüle edin.

03

Backend Doğrulama ve Webhook Kurulumu

Makbuz doğrulama algoritmalarını ve webhook imza kontrol mekanizmasını devreye alın.

04

UI/UX ve Hata Yönetimi Tasarımı

Kullanıcıya anlaşılır hata mesajları sunan ve mükerrer tıklamayı engelleyen arayüzler kurgulayın.

05

Canlı Ortama Geçiş ve Pilot Doğrulama

Canlı API anahtarlarına geçerek gerçek küçük tutarlı işlemlerle mutabakat testleri yapın.

Sandbox (Test) Ortamının Kurulumu ve Simülasyon

Tüm ödeme sağlayıcıları, geliştirme aşaması için izole test ortamları (Sandbox / Test Environment) sunar. Bu ortamlarda gerçek para transferi gerçekleşmez; ancak sistemler canlı ortamdaki gibi yanıt verir.

Geliştirme sürecinde test edilmesi gereken zorunlu senaryolar şunlardır:

  • Başarılı Tahsilat: Standart test kartı ile başarılı ödeme ve veritabanı aktivasyonu.

  • Yetersiz Bakiye ve Kart Reddi (Declined): Hata kodunun UI tarafında kullanıcıya doğru aktarılması.

  • 3D Secure Simülasyonu: Başarılı onay, hatalı SMS kodu girişi ve iptal senaryoları.

  • Apple IAP Sandbox: App Store Connect üzerinde "Sandbox Testers" hesabı oluşturularak abonelik yenilenme periyotlarının (örneğin 1 aylık aboneliğin sandbox'ta 5 dakikada bir yenilenmesi) hızlandırılmış olarak test edilmesi.

  • Abonelikten Vazgeçme (Grace Period): Karttan para çekilemediğinde kullanıcının hesabının hemen kapatılmayıp belirli bir ek süre tanımlanması durumu.

Hata Yönetimi (Error Handling) ve Kullanıcı Deneyimi (UX)

Ödeme ekranları, bir mobil uygulamanın terk edilme oranının en yüksek olduğu noktalardır. Arayüz tasarımı ve hata yönetimi hem güven vermeli hem de teknik aksaklıkları kullanıcıya şeffafça bildirmelidir.

Ödeme deneyiminde uygulanması gereken en iyi pratikler:

  • İşlem Sırasında Arayüzü Kilitlemek: Kullanıcı "Öde" butonuna bastığı anda buton pasif (disabled) hale getirilmeli ve bir yükleme animasyonu (spinner) gösterilmelidir. Bu, kullanıcının sabırsızlıkla butona birden fazla kez basarak çift çekim (double charge) yapmasını engeller.

  • Anlaşılır Hata Mesajları: Bankadan dönen 51 veya 05 gibi teknik kodlar kullanıcıya gösterilmemelidir. Bunun yerine "Kartınız bankanız tarafından onaylanmadı. Lütfen bakiyenizi kontrol ediniz veya farklı bir kart deneyiniz" gibi eyleme dönüştürülebilir rehber mesajlar sunulmalıdır.

  • Geri Alınabilir Akışlar: Kullanıcı 3D Secure ekranını kapattığında sepet sıfırlanmamalı, kullanıcı aynı bilgileri tekrar girmek zorunda kalmadan ödeme ekranına dönebilmelidir.

Canlı Ortama Geçiş (Production) ve Son Güvenlik Testleri

Geliştirme tamamlandıktan sonra canlı ortama geçiş aşaması katı bir kontrol protokolüne bağlıdır:

  • İstemci ve sunucu konfigürasyonlarındaki tüm pk_test_... ve sk_test_... test API anahtarları, canlı anahtarlarla (pk_live_...) değiştirilir. Gizli anahtarların (secret keys) mobil uygulamanın binary kodu içine gömülmediğinden kesinlikle emin olunmalıdır; bu anahtarlar yalnızca backend ortam değişkenlerinde (environment variables) saklanmalıdır.

  • Uygulama canlıya alındıktan hemen sonra gerçek bir kredi kartı ile 1 TL / 1 USD gibi minimum tutarlı gerçek bir satın alma yapılır.

  • İşlemin banka ekstresine yansıması, sağlayıcı panelinde başarılı görünmesi, webhook bildiriminin tetiklenmesi ve veritabanı kaydının oluşması teyit edildikten sonra test işlemi panel üzerinden iade edilir.

Mobil Ödeme Mimarilerinde Performans, Bakım ve Chargeback Yönetimi

Ödeme altyapısının entegre edilip canlıya alınması sürecin sadece ilk adımıdır. Canlı sistemlerde karşılaşılan en büyük operasyonel riskler; ters ibraz (chargeback) süreçleri, iade talepleri ve cross-platform geliştirme çerçevelerindeki (frameworks) sürüm uyumsuzluklarıdır.

Özellikle SaaS ve abonelik modeliyle çalışan mobil uygulamalarda, kullanıcıların bankaları üzerinden yaptıkları harcama itirazları, işletmenin ticari itibarını ve ödeme sağlayıcıları nezdindeki risk skorunu doğrudan etkiler. Bu sebeple proaktif bir izleme ve bakım altyapısı kurulmalıdır.

Ters İbraz (Chargeback) ve İade Süreçlerinin Otomasyonu

Chargeback; kart sahibinin bankasına başvurarak ekstresindeki bir mobil harcamaya itiraz etmesi ve parasını geri talep etmesidir. Chargeback oranı toplam işlem adedinin %1'ini aştığında, Visa ve Mastercard işletmeyi yüksek riskli kategorisine alır ve işlem başına 15 ila 50 Dolar arasında değişen ceza bedelleri uygular.

Chargeback risklerini minimize etmek için:

  • Açık Ekstre Başlığı (Billing Descriptor): Banka ekstresinde görünen şirket adının kullanıcı tarafından tanınabilir olması sağlanmalıdır. Şirket unvanı ile uygulama adı farklıysa ekstrede uygulama adı (UYGULAMA*PREMIUM) geçirilmelidir.

  • İade Süreçlerinin Kolaylaştırılması: Kullanıcının uygulama içinden kolayca iptal ve iade talep edebilmesi sağlanmalıdır. Kendi uygulamanız üzerinden yapılan anlık bir iade, banka üzerinden gelecek bir chargeback dosyasından kat kat daha maliyetsizdir.

  • Fraud Skorlama Modelleri: Stripe Radar veya benzeri yapay zeka tabanlı dolandırıcılık tespit araçları entegre edilerek, riskli IP adreslerinden veya proxy arkasından gelen şüpheli işlemler otomatik olarak 3DS zorunluluğuna yönlendirilmeli ya da reddedilmelidir.

Cross-Platform (Flutter, React Native) Entegrasyon Farklılıkları

Flutter ve React Native gibi cross-platform teknolojiler tek bir kod tabanıyla hem iOS hem Android için ödeme sistemi kurma avantajı sunar. Ancak platforma özgü StoreKit ve Google Play Billing kütüphanelerinin sürekli güncellenmesi, cross-platform paketlerinde sürüm uyumsuzlukları yaratabilir.

Cross-platform projelerde iki temel strateji izlenir:

  • Topluluk Paketleri Kullanımı (InAppPurchase / React Native IAP): Açık kaynaklı kütüphanelerle doğrudan native API'lere köprü kurulur. Maliyetsizdir ancak mağaza API güncellemelerinde (örneğin Google Play Billing v7 zorunluluğu) kütüphanenin güncellenmesini beklemek veya native tarafta özel kod yazmak gerekebilir.

  • RevenueCat / Adapty Gibi Entegratör Araçlar: Abonelik yönetimi ve IAP süreçlerini soyutlayan bu platformlar, tek bir SDK ile hem iOS hem Android hem de harici web ödemelerini birbirine bağlar. Makbuz doğrulamalarını kendi sunucularında yapar ve analitik gösterge panelleri sunar. Belirli bir işlem hacmine kadar ücretsiz olup sonrasında gelir üzerinden komisyon alırlar.

Sıkça Sorulan Sorular

Mobil uygulamadan ödeme alırken şirket kurmak zorunlu mu?

Evet, ister Apple In-App Purchase/Google Play Billing ister harici Sanal POS (Stripe, Iyzico) kullanılsın, elde edilen gelir ticari kazanç sayıldığından vergilendirme ve faturalandırma için yasal bir şirket yapısı zorunludur.

Apple ve Google ödeme sistemlerini harici POS ile atlamak (bypass) mümkün mü?

Dijital ürün, abonelik veya oyun içi varlık satıyorsanız mağaza sistemlerini atlamak kesinlikle yasaktır ve tespit edildiğinde uygulamanın mağazadan tamamen silinmesine yol açar. Harici POS yalnızca fiziksel ürün ve harici hizmet satışlarında yasal olarak kullanılabilir.

Mobil uygulama ödeme entegrasyonu ortalama ne kadar sürer?

Kapsama bağlı olarak değişmekle birlikte; tek bir IAP veya Stripe SDK entegrasyonu backend, UI ve sandbox testleriyle birlikte ortalama 2 ila 4 hafta arasında tamamlanır.

Tokenizasyon kullanmak PCI DSS denetim sorumluluğunu tamamen ortadan kaldırır mı?

Sorumluluğu tamamen kaldırmaz ancak en hafif seviye olan SAQ-A seviyesine indirir. Kart verisi sunucularınıza uğramadığı için maliyetli altyapı güvenlik denetimlerinden muaf olursunuz.

Apple ve Google küçük işletmeler için komisyon indirimi uyguluyor mu?

Evet, Apple App Store Small Business Program ve Google Play %15 indirim programı ile yıllık geliri 1 milyon doların altında olan geliştiriciler için komisyon oranı %30 yerine %15 olarak uygulanır.

Webhook kurulumu mobil ödeme sistemlerinde neden zorunludur?

Kullanıcının internet kopması, telefonun kapanması veya uygulamanın çökmesi gibi durumlarda istemci yanıt alamasa bile ödemenin sunucu tarafında güvenle onaylanıp siparişin işlenmesini sağlar.

Cross-platform (Flutter / React Native) projelerde ödeme entegrasyonu native'e göre performans kaybı yaratır mı?

Hayır, ödeme akışları ağ ve API tabanlı çalıştığı için hissedilir bir performans kaybı oluşmaz; ancak platform kütüphanelerinin güncelliği düzenli takip edilmelidir.

3D Secure 2.0 mobil dönüşüm oranlarını nasıl etkiler?

Sürtünmesiz akış (frictionless flow) özelliği sayesinde düşük riskli işlemlerde SMS şifresi ekranını atlayarak arka planda onay verir ve mobil sepet terk oranlarını ciddi oranda düşürür.

Son Adım

Dijital projenizi bugün planlayalım

Web, yazılım, e-ticaret, mobil uygulama, entegrasyon, SEO veya GEO ihtiyacınızı net bir kapsama dönüştürelim.

Mobil Uygulamaya Ödeme Sistemi Nasıl Entegre Edilir? | Webizm