Flutter SDK'da hataları yönetme
SDK tarafından döndürülen her hata AdaptyErrorCode türündedir. İşte bir örnek:
Bu çözümler sorununuzu çözmezse, destek ekibiyle iletişime geçmeden önce yapmanız gerekenleri öğrenmek için Diğer sorunlar bölümüne bakın.
try {
final result = await adapty.makePurchase(product: product);
} on AdaptyError catch (adaptyError) {
if (adaptyError.code == AdaptyErrorCode.paymentCancelled) {
// Cancelled
}
} catch (e) {
}
Sistem StoreKit Kodları
| Hata | Kod | Çözüm |
|---|---|---|
| unknown | 0 | Bilinmeyen veya beklenmedik bir hata oluştuğunu belirten hata kodu. Yeniden deneyin veya Diğer sorunlar bölümüne bakın. |
| clientInvalid | 1 | İstemcinin gerçekleştirmeye çalıştığı işlemi yapmasına izin verilmediğini belirten hata kodu. |
| paymentCancelled | 2 | Kullanıcının ödeme isteğini iptal ettiğini belirten hata kodu. Herhangi bir işlem yapmanıza gerek yok; ancak iş mantığı açısından kullanıcıya indirim teklif edebilir veya daha sonra hatırlatabilirsiniz. |
| paymentInvalid | 3 | Ödeme parametrelerinden birinin App Store tarafından tanınmadığını belirten hata kodu. |
| paymentNotAllowed | 4 | Kullanıcının ödeme yapmasına izin verilmediğini belirten hata kodu. |
| storeProductNotAvailable | 5 | İstenen ürünün mağazada mevcut olmadığını belirten hata kodu. Uygulamayı yeniden yüklemeyi deneyin. |
| cloudServicePermissionDenied | 6 | Kullanıcının bulut hizmeti bilgilerine erişime izin vermediğini belirten hata kodu. |
| cloudServiceNetworkConnectionFailed | 7 | Cihazın ağa bağlanamadığını belirten hata kodu. |
| cloudServiceRevoked | 8 | Kullanıcının bu bulut hizmetini kullanma iznini iptal ettiğini belirten hata kodu. |
| privacyAcknowledgementRequired | 9 | Kullanıcının Apple’ın gizlilik politikasını henüz onaylamadığını belirten hata kodu. |
| unauthorizedRequestData | 10 | Uygulamanın, gerekli yetkiye sahip olmadığı bir özelliği kullanmaya çalıştığını belirten hata kodu. |
| invalidOfferIdentifier | 11 |
İstediğiniz teklifleri App Store Connect’te oluşturduğunuzdan ve geçerli bir teklif tanımlayıcısı ilettiğinizden emin olun. |
| invalidSignature | 12 | Ödeme indirimindeki imzanın geçerli olmadığını belirten hata kodu. |
| missingOfferParams | 13 | Ödeme indiriminde parametrelerin eksik olduğunu belirten hata kodu. |
| invalidOfferPrice | 14 | App Store Connect’te belirttiğiniz fiyatın artık geçerli olmadığını belirten hata kodu. Teklifler her zaman indirimli bir fiyatı temsil etmelidir. |
Özel Android kodları
| Hata | Kod | Çözüm |
|---|---|---|
| adaptyNotInitialized | 20 | Adapty SDK’yı Adapty.activate metoduyla düzgün şekilde yapılandırmanız gerekiyor. Nasıl yapılacağını öğrenmek için Flutter için ilgili sayfaya bakabilirsiniz. |
| productNotFound | 22 | Bu hata, satın alınmak istenen ürünün mağazada mevcut olmadığını gösterir. |
| invalidJson | 23 | Paywall JSON’ı geçerli değil. Adapty Kontrol Paneli’nde düzeltin. Nasıl düzeltileceğine dair ayrıntılar için Paywall’u remote config ile özelleştirme konusuna bakın. |
| currentSubscriptionToUpdateNotFoundInHistory | 24 | Yenilenmesi gereken orijinal abonelik bulunamadı. |
| pendingPurchase | 25 | Bu hata, satın alma durumunun tamamlandı yerine beklemede olduğunu gösterir. Ayrıntılar için Android Geliştirici belgelerindeki Beklemedeki işlemleri yönetme sayfasına bakın. |
| billingServiceTimeout | 97 | Bu hata, Google Play yanıt vermeden önce isteğin maksimum zaman aşımına ulaştığını gösterir. Bu durum, örneğin Play Billing Library çağrısının talep ettiği eylemin gecikmeli çalışması nedeniyle oluşabilir. |
| featureNotSupported | 98 | İstenen özellik, mevcut cihazda Play Store tarafından desteklenmiyor. |
| billingServiceDisconnected | 99 | Bu kritik hata, istemci uygulamasının BillingClient aracılığıyla Google Play Store hizmetiyle kurduğu bağlantının kesildiğini gösterir. |
| billingServiceUnavailable | 102 | Bu geçici hata, Google Play Billing hizmetinin şu anda kullanılamaz durumda olduğunu gösterir. Çoğu durumda bu, istemci cihaz ile Google Play Billing hizmetleri arasında bir ağ bağlantısı sorunu olduğu anlamına gelir. |
| billingUnavailable | 103 | Bu hata, satın alma işlemi sırasında kullanıcı tarafı kaynaklı bir faturalandırma hatası oluştuğunu gösterir. Bu durumun yaşanabileceği örnekler: 1. Kullanıcının cihazındaki Play Store uygulaması güncel değil. 2. Kullanıcı desteklenmeyen bir ülkede bulunuyor. 3. Kullanıcı bir kurumsal kullanıcı ve kurumsal yöneticisi satın alma işlemlerini devre dışı bırakmış. 4. Google Play, kullanıcının ödeme yöntemini tahsil edemiyor. Örneğin, kullanıcının kredi kartının süresi dolmuş olabilir. 5. Kullanıcı Play Store uygulamasında oturum açmamış. |
| developerError | 105 | Bu, bir API’nin hatalı kullanıldığını gösteren kritik bir hatadır. |
| billingError | 106 | Bu, Google Play’in kendi içinde bir sorun olduğunu gösteren kritik bir hatadır. |
| itemAlreadyOwned | 107 | Consumable ürün zaten satın alınmış. |
| itemNotOwned | 108 | Bu hata, öğe üzerinde istenen işlemin başarısız olduğunu gösterir. |
Özel StoreKit kodları
| Hata | Kod | Çözüm |
|---|---|---|
| noProductIDsFound | 1000 | Bu hata, paywall’da talep ettiğiniz ürünlerin App Store’da listelenmesine rağmen satın alma için kullanılamadığını gösterir. Hata bazen Bu hatayla karşılaşıyorsanız Kod-1000 |
| noProductsFound | 1001 | Bu hata, satın alınmak istenen ürünün mağazada mevcut olmadığını gösterir. |
| productRequestFailed | 1002 | Şu an kullanılabilir ürünler alınamıyor. |
| cantMakePayments | 1003 | Bu cihazda uygulama içi satın almalar izin verilmiyor. Sorun giderme kılavuzuna bakın. |
| noPurchasesToRestore | 1004 | Bu hata, App Store’un geri yüklenecek satın alma işlemini bulamadığını gösterir. |
| cantReadReceipt | 1005 | Cihazda geçerli bir makbuz bulunmuyor. Bu durum sandbox testlerinde sorun yaratabilir. Sandbox ortamında gerçek bir satın alma yapana kadar geçerli bir makbuz dosyanız olmaz; bu nedenle makbuza erişmeden önce mutlaka bir satın alma yapın. Sandbox testleri sırasında cihazda geçerli bir Apple sandbox hesabıyla oturum açtığınızdan da emin olun. |
| productPurchaseFailed | 1006 | Ürün satın alma işlemi başarısız oldu. Bu, Adapty ile ilgisi olmayan bir StoreKit hatasıdır. Yeni bir sandbox profili kullanmayı deneyin. Sorun devam ederse Apple desteğiyle iletişime geçin. |
| missingOfferSigningParams | 1007 | Bu hata, Adapty entegrasyonunda veya tekliflerde bir sorun olduğunu gösterir. Kurulum ayrıntıları için App Store entegrasyonunu yapılandırma ve Teklifler sayfalarına bakın. |
| refreshReceiptFailed | 1010 | Bu hata, makbuzun alınamadığını gösterir. Yalnızca StoreKit 1 için geçerlidir. |
| receiveRestoredTransactionsFailed | 1011 | Satın alma geri yükleme işlemi başarısız oldu. |
Özel ağ kodları
| Hata | Kod | Çözüm |
|---|---|---|
| notActivated | 2002 | Adapty SDK etkinleştirilmemiş. Adapty.activate metodunu kullanarak SDK’yı düzgün şekilde yapılandırmanız gerekiyor. |
| badRequest | 2003 | Hatalı istek. App Store entegrasyonu için gereken tüm adımları tamamladığınızdan emin olun. |
| serverError | 2004 | Sunucu hatası. Bir süre sonra tekrar deneyin. Sorun çözülmezse Adapty destek ekibiyle iletişime geçin. |
| networkFailed | 2005 | Bu hata, kullanıcının cihazındaki ağ bağlantısıyla ilgili sorunları gösterir. VPN’i devre dışı bırakmayı veya mobil veri ile WiFi arasında geçiş yapmayı deneyin. |
| decodingFailed | 2006 | Bu hata, yanıt çözümlemesinin başarısız olduğunu gösterir. Kodunuzu gözden geçirin ve gönderdiğiniz parametrelerin geçerli olduğundan emin olun. Örneğin, bu hata geçersiz bir API anahtarı kullandığınızı gösterebilir. |
| encodingFailed | 2009 | Bu hata, istek kodlamasının başarısız olduğunu gösterir. |
| analyticsDisabled | 3000 | Belirli bir kullanıcı için analytics’i devre dışı bıraktığınızdan analytics olayları işlenemiyor. |
| wrongParam | 3001 | Bu hata, bazı parametrelerinizin doğru olmadığını gösterir. Adapty paywall builder kullanıyor ve bu hata nedeniyle paywall görüntüleyemiyorsanız, paywall builder’da Show on device seçeneğini açın. Bir diğer olası neden, yerel yedek dosya sürümünün SDK sürümüyle eşleşmemesidir. Kontrol panelinden yeni bir dosya indirin. |
| activateOnceError | 3005 | .activate metodu birden fazla kez çağrılamaz. |
| profileWasChanged | 3006 | İşlem sırasında kullanıcı profili değiştirildi. Bu hata, identify çağrısının ardından identify tamamlanmadan başka bir metod çağırdığınızda oluşabilir. Bunu önlemek için identify başarıyla tamamlanana kadar diğer metodları çağırmayın. |
| unsupportedData | 3007 | Bu hata, veri formatının SDK tarafından desteklenmediğini gösterir. |
| persistingDataError | 3100 | Veri kaydedilirken bir hata oluştu. |
| fetchTimeoutError | 3101 | Bu hata, getirme işleminin zaman aşımına uğradığını gösterir. |
Diğer sorunlar
Henüz bir çözüm bulamadıysanız, deneyebileceğiniz diğer adımlar şunlardır:
- SDK’yı en son sürüme yükseltme: En kararlı olduklarından ve bilinen sorunlara yönelik düzeltmeler içerdiklerinden, her zaman en son SDK sürümlerine yükseltmenizi öneririz.
- Destek ekibiyle iletişime geçin veya diğer geliştiricilerden yardım alın destek forumunda.
- Destek ekibiyle [email protected] adresinden veya sohbet aracılığıyla iletişime geçin: SDK’yı yükseltmeye hazır değilseniz veya yükseltme sorunu çözmediyse destek ekibimizle iletişime geçin. Ayrıntılı günlük kaydını etkinleştirip günlükleri ekiple paylaşırsanız sorununuz daha hızlı çözülecektir. İlgili kod parçacıklarını da ekleyebilirsiniz.