- Kaynak: SubscriptionPurchase
- IntroductoryPriceInfo
- SubscriptionCancelSurveyResult
- SubscriptionPriceChange
- Yöntemler
Kaynak: SubscriptionPurchase
SubscriptionPurchase kaynağı, kullanıcının abonelik satın alma işleminin durumunu gösterir.
| JSON gösterimi |
|---|
{ "kind": string, "startTimeMillis": string, "expiryTimeMillis": string, "autoResumeTimeMillis": string, "autoRenewing": boolean, "priceCurrencyCode": string, "priceAmountMicros": string, "introductoryPriceInfo": { object ( |
| Alanlar | |
|---|---|
kind |
Bu tür, androidpublisher hizmetinde bir subscriptionPurchase nesnesini temsil eder. |
startTimeMillis |
Aboneliğin verildiği zaman (Epoch'tan beri geçen milisaniye cinsinden). |
expiryTimeMillis |
Aboneliğin sona ereceği zaman (Epoch'tan beri geçen milisaniye cinsinden). |
autoResumeTimeMillis |
Aboneliğin otomatik olarak devam ettirileceği zaman (Epoch'tan bu yana milisaniye cinsinden). Yalnızca kullanıcı aboneliği duraklatmayı talep ettiyse gösterilir. |
autoRenewing |
Aboneliğin, geçerli son kullanma zamanına ulaştığında otomatik olarak yenilenip yenilenmeyeceği. |
priceCurrencyCode |
Abonelik fiyatı için ISO 4217 para birimi kodu. Örneğin, fiyat İngiliz sterlini cinsinden belirtilmişse priceCurrencyCode "GBP" olur. |
priceAmountMicros |
Aboneliğin fiyatı. Vergi hariç fiyatların geçerli olduğu ülkelerde fiyata vergi dahil değildir. Vergi dahil fiyatların geçerli olduğu ülkelerde fiyata vergi dahil edilir. Fiyat, mikro birim olarak ifade edilir. 1.000.000 mikro birim, para biriminin bir birimini temsil eder. Örneğin, abonelik fiyatı 1, 99 € ise priceAmountMicros değeri 1990000 olur. |
introductoryPriceInfo |
Aboneliğin tanıtım fiyatı bilgileri. Bu seçenek yalnızca abonelik tanıtım fiyatıyla satın alındığında gösterilir. Bu alan, aboneliğin şu anda tanıtım fiyatı döneminde olduğunu belirtmez. |
countryCode |
Abonelik verildiği sırada kullanıcının ISO 3166-1 alfa-2 fatura ülkesi/bölge kodu. |
developerPayload |
Bir siparişle ilgili ek bilgiler içeren, geliştirici tarafından belirtilen dize. |
paymentState |
Aboneliğin ödeme durumu. Olası değerler: 0. Ödeme beklemede 1. Ödeme alındı 2. Ücretsiz deneme 3. Ertelenmiş sürüm yükseltme/düşürme işlemi beklemede İptal edilen veya süresi dolan aboneliklerde gösterilmez. |
cancelReason |
Aboneliğin iptal edilmesinin veya otomatik olarak yenilenmemesinin nedeni. Olası değerler: 0. Kullanıcı, aboneliği iptal etti. Abonelik, örneğin faturalandırma sorunu nedeniyle sistem tarafından iptal edildi. Abonelik, yeni bir abonelikle (3) değiştirildi. Abonelik, geliştirici tarafından iptal edildi |
userCancellationTimeMillis |
Aboneliğin kullanıcı tarafından iptal edildiği zaman (dönem başlangıcından itibaren milisaniye cinsinden). Yalnızca cancelReason 0 ise mevcut olur. |
cancelSurveyResult |
Kullanıcının abonelik iptali sürecini tamamlarken sağladığı bilgiler (iptal nedeni anketi). |
orderId |
Abonelik satın alma işlemiyle ilişkili en son yinelenen siparişin sipariş kimliği. Abonelik, ödeme reddedildiği için iptal edildiyse bu, ödemenin reddedildiği siparişin sipariş kimliğidir. |
linkedPurchaseToken |
Bu abonelik aşağıdakilerden biriyse ilk satın alma işleminin satın alma jetonu: 0. İptal edilmiş ancak süresi dolmamış bir aboneliğe yeniden kaydolma 1. Önceki abonelikten üst/alt sürüme geçme Örneğin, bir kullanıcının ilk kaydolduğunu ve X satın alma jetonunu aldığınızı, ardından kullanıcının aboneliğini iptal edip yeniden kaydolma akışını tamamladığını (aboneliği sona ermeden önce) ve Y satın alma jetonunu aldığınızı, son olarak da kullanıcının aboneliğini yükselttiğini ve Z satın alma jetonunu aldığınızı varsayalım. Bu API'yi Z satın alma jetonuyla çağırırsanız bu alan Y olarak ayarlanır. Bu API'yi Y satın alma jetonuyla çağırırsanız bu alan X olarak ayarlanır. Bu API'yi X satın alma jetonuyla çağırırsanız bu alan ayarlanmaz. |
purchaseType |
Aboneliğin satın alma türü. Bu alan yalnızca satın alma işlemi standart uygulama içi faturalandırma akışı kullanılarak yapılmadıysa ayarlanır. Olası değerler: 0. Test (ör. lisans testi hesabından satın alınmış) 1. Promosyon (ör. promosyon kodu kullanılarak satın alınan) |
priceChange |
Mevcut en son fiyat değişikliği bilgileri. Bu seçenek yalnızca abonelikte henüz uygulanmamış bir fiyat değişikliği olduğunda gösterilir. Abonelik yeni fiyatla yenilendiğinde veya abonelik iptal edildiğinde fiyat değişikliği bilgisi döndürülmez. |
profileName |
Abonelik satın alındığında kullanıcının profil adı. Yalnızca "Google ile abone ol" kullanılarak yapılan satın alma işlemlerinde gösterilir. |
emailAddress |
Abonelik satın alındığında kullanıcının e-posta adresi. Yalnızca "Google ile abone ol" kullanılarak yapılan satın alma işlemlerinde gösterilir. |
givenName |
Abonelik satın alındığında kullanıcının adı. Yalnızca "Google ile abone ol" kullanılarak yapılan satın alma işlemlerinde gösterilir. |
familyName |
Abonelik satın alındığında kullanıcının soyadı. Yalnızca "Google ile abone ol" kullanılarak yapılan satın alma işlemlerinde gösterilir. |
profileId |
Abonelik satın alındığında kullanıcının Google profili kimliği. Yalnızca "Google ile abone ol" kullanılarak yapılan satın alma işlemlerinde gösterilir. |
acknowledgementState |
Abonelik ürününün onay durumu. Olası değerler: 0. Henüz onaylanmadı 1. Onaylandı |
externalAccountId |
Üçüncü taraf hizmetindeki kullanıcı hesabı tanımlayıcısı. Yalnızca hesap bağlama işlemi abonelik satın alma akışının bir parçası olarak gerçekleştiyse gösterilir. |
promotionType |
Bu satın alma işleminde uygulanan promosyon türü. Bu alan yalnızca abonelik satın alınırken promosyon uygulandıysa ayarlanır. Olası değerler: 0. Tek kullanımlık kod 1. Özel kod |
promotionCode |
Bu satın alma işleminde uygulanan promosyon kodu. Bu alan yalnızca abonelik satın alınırken özel kod promosyonu uygulandıysa ayarlanır. |
obfuscatedExternalAccountId |
Uygulamanızdaki kullanıcı hesabıyla benzersiz şekilde ilişkilendirilmiş kimliğin karartılmış bir sürümü. Aşağıdaki satın alma işlemlerinde bulunur: * Hesap bağlama işlemi, abonelik satın alma akışının bir parçası olarak gerçekleştiyse. * Satın alma işlemi yapılırken https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid kullanılarak belirtilmiş olmalıdır. |
obfuscatedExternalProfileId |
Kullanıcının uygulamanızdaki profiliyle benzersiz şekilde ilişkilendirilmiş kimliğin karartılmış sürümü. Yalnızca satın alma işlemi yapılırken https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid kullanılarak belirtilmişse bulunur. |
IntroductoryPriceInfo
Aboneliğin tanıtım fiyatı bilgilerini içerir.
| JSON gösterimi |
|---|
{ "introductoryPriceCurrencyCode": string, "introductoryPriceAmountMicros": string, "introductoryPricePeriod": string, "introductoryPriceCycles": integer } |
| Alanlar | |
|---|---|
introductoryPriceCurrencyCode |
Tanıtım amaçlı abonelik fiyatı için ISO 4217 para birimi kodu. Örneğin, fiyat İngiliz sterlini cinsinden belirtilmişse priceCurrencyCode "GBP" olur. |
introductoryPriceAmountMicros |
Aboneliğin vergi hariç tanıtım fiyatı. Para birimi, priceCurrencyCode ile aynıdır. Fiyat, mikro birim olarak ifade edilir. 1.000.000 mikro birim, para biriminin bir birimini temsil eder. Örneğin, abonelik fiyatı 1, 99 € ise priceAmountMicros değeri 1990000 olur. |
introductoryPricePeriod |
ISO 8601 biçiminde belirtilen, tanıtım fiyatı dönemi. Yaygın değerler (ancak bunlarla sınırlı olmamak üzere) "P1W" (bir hafta), "P1M" (bir ay), "P3M" (üç ay), "P6M" (altı ay) ve "P1Y" (bir yıl) şeklindedir. |
introductoryPriceCycles |
Tanıtım fiyatı sunulacak fatura dönemi sayısı. |
SubscriptionCancelSurveyResult
Kullanıcının abonelik iptali sürecini tamamlarken sağladığı bilgiler (iptal nedeni anketi).
| JSON gösterimi |
|---|
{ "cancelSurveyReason": integer, "userInputCancelReason": string } |
| Alanlar | |
|---|---|
cancelSurveyReason |
Kullanıcının ankette seçtiği iptal nedeni. Olası değerler: 0. Diğer 1. Bu hizmeti yeterince kullanmıyorum 2. Teknik sorunlar 3. Maliyetle ilgili nedenler 4. Daha iyi bir uygulama buldum |
userInputCancelReason |
Kullanıcının özelleştirilmiş giriş iptal nedeni. Yalnızca cancelReason 0 olduğunda bulunur. |
SubscriptionPriceChange
Uygulamadaki fiyat değişikliğiyle ilgili kullanıcı yolculuğunu kontrol etmek için kullanılabilecek abonelik fiyatı değişikliği bilgilerini içerir. Bu bilgiler, kullanıcıdan onay isteme veya deneyimi başarılı bir dönüşüm için uyarlama şeklinde olabilir.
| JSON gösterimi |
|---|
{
"newPrice": {
object ( |
| Alanlar | |
|---|---|
newPrice |
Fiyat değişikliği kullanıcı tarafından kabul edilirse aboneliğin yenileneceği yeni fiyat. |
state |
Fiyat değişikliğinin mevcut durumu. Olası değerler: 0. Beklemede: Kullanıcının kabul etmesi beklenen, bekleyen fiyat değişikliğinin durumu. Bu durumda, isteğe bağlı olarak uygulama içi API'yi kullanarak kullanıcıdan onay isteyebilirsiniz. 1. Kabul edildi: Aboneliğin iptal edilmediği sürece yenileneceği kabul edilen fiyat değişikliğinin durumu. Fiyat değişikliği, aboneliğin yenileneceği gelecekteki bir tarihte geçerli olur. Değişikliğin, abonelik bir sonraki yenilendiğinde gerçekleşmeyebileceğini unutmayın. |
Yöntemler |
|
|---|---|
|
Abonelik satın alma işlemini onaylar. |
|
Kullanıcının abonelik satın alma işlemini iptal eder. |
|
Kullanıcının abonelik satın alma işlemini, gelecekteki belirli bir son kullanma tarihine kadar erteler. |
(deprecated) |
Desteği sonlandırıldı: Bunun yerine purchases.subscriptionsv2.get yöntemini kullanın. |
(deprecated) |
Desteği sonlandırıldı: Bunun yerine orders.refund'u kullanın. |
(deprecated) |
Desteği sonlandırıldı: Bunun yerine purchases.subscriptionsv2.revoke yöntemini kullanın. |
Hata kodları
Bu kaynağın işlemleri aşağıdaki HTTP hata kodlarını döndürür:
| Hata kodu | Neden | Açıklama | Çözünürlük |
|---|---|---|---|
400 / 410 |
subscriptionExpired |
Aboneliğin süresi dolduğundan istenen işlem gerçekleştirilemiyor. | Aboneliğin son kullanma tarihini kontrol edin. Bu işleme, süresi dolmuş aboneliklerde izin verilmez. |
400 |
subscriptionInvalidArgument |
Abonelik isteğinde geçersiz bir bağımsız değişken sağlandı. | API dokümanlarını inceleyin ve gerekli tüm alanların sağlandığından ve doğru biçimlendirildiğinden emin olun. |
400 |
invalidPurchaseState |
Satın alma işlemi, istenen işlemi gerçekleştirmek için geçerli bir durumda değil. Örneğin, halihazırda kullanılmış bir satın alma işlemini onaylamaya veya etkin olmayan bir aboneliği iptal etmeye çalışıyor olabilirsiniz. | İşlemi denemeden önce ilgili Get API'yi kullanarak kaynağın mevcut durumunu kontrol edin. Kaynağın işlem için uygun durumda olduğundan emin olun. |
400 |
invalidValue |
İstekle geçersiz bir değer sağlandı. Bu hata genellikle hatalı veya geçersiz bir satın alma jetonu için döndürülür. | İstek gövdesindeki veya parametrelerdeki geçersiz alan değerini API referansına göre düzeltin. |
400 |
prepaidSubscriptionNotSupported |
İstenen işlem, ön ödemeli aboneliklerde desteklenmez. | İşlemin abonelik türü için geçerli olduğundan emin olun. Bu hata, İptal, Ertele, Geri Ödeme veya İptal Et gibi yöntemlere özgüdür. |
400 |
productNotOwnedByUser |
Sağlanan satın alma jetonu geçerli ancak kullanıcı şu anda ürüne sahip değil. Bu durum, satın alma işlemi için geri ödeme yapıldıysa, satın alma işlemi iptal edildiyse veya onaylanmadan önce süresi dolduysa meydana gelebilir. | İşlemi denemeden önce ilgili Get API'yi kullanarak kaynağın mevcut durumunu kontrol edin. Kaynağın işlem için uygun durumda olduğundan emin olun. |
400 |
purchaseTokenMismatch |
Sağlanan satın alma jetonu, satın alma işlemi, paket adı, abonelik kimliği veya ürün kimliğiyle eşleşmiyor. | Tüm ayrıntıların doğru olduğunu ve birbirleriyle eşleştiğini doğrulayın. |
400 |
required |
İstekten zorunlu bir alan veya parametre eksik. | Tüm zorunlu alanların ve parametrelerin eklendiğinden emin olmak için API dokümanlarına bakın. |
400 |
unsupportedIabType |
Bu işlem, belirtilen uygulama içi faturalandırma türü için desteklenmiyor. | API yönteminin, yönetilen öğe türüyle uyumlu olduğundan emin olun. |
403 |
userInsufficientPermission |
Kullanıcının istenen işlemi gerçekleştirmek için yeterli izni yok. | Kimliği doğrulanmış kullanıcının Google Play Console'da gerekli izinlere sahip olduğundan emin olun. Daha fazla bilgi için Hizmet hesabı kullanma başlıklı makaleyi inceleyin. |
404 |
notFound |
İstenen kaynak bulunamadı. | Tanımlayıcıların (ör. satın alma jetonu, paket adı, ürün kimliği, abonelik kimliği) doğru olduğunu doğrulayın. |
409 |
concurrentUpdate |
Eşzamanlı olarak güncellenen bir nesne güncellenmeye çalışıldı. | İsteği eksponansiyel geri yüklemeyle yeniden deneyin. Aynı kaynakta eş zamanlı değişiklik yapmaktan kaçının. |
410 |
purchaseTokenNoLongerValid |
Satın alma jetonu, ilişkili kullanıcı hesabı silindiği veya satın alma kaydı artık mevcut olmadığı için kalıcı olarak geçersizdir. | Bu satın alma jetonunun kullanımını durdurun. |
410 |
subscriptionNoLongerAvailable |
Abonelik satın alma işlemi çok uzun süre önce sona erdiği için sorgulanamıyor. | Bu hata, aboneliğin süresinin 60 günden uzun bir süre önce dolduğunu gösterir. Artık bu abonelikleri sorgulamamalısınız. |
5xx |
Generic error |
Google Play sunucusunda genel hata. | İsteğinizi yeniden deneyin. Sorun devam ederse Google Play hesap yöneticinizle iletişime geçin veya destek isteği gönderin. Bilinen kesintiler için Play Durum Kontrol Paneli'ni kontrol edin. |