REST Resource: purchases.subscriptions

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 (IntroductoryPriceInfo)
  },
  "countryCode": string,
  "developerPayload": string,
  "paymentState": integer,
  "cancelReason": integer,
  "userCancellationTimeMillis": string,
  "cancelSurveyResult": {
    object (SubscriptionCancelSurveyResult)
  },
  "orderId": string,
  "linkedPurchaseToken": string,
  "purchaseType": integer,
  "priceChange": {
    object (SubscriptionPriceChange)
  },
  "profileName": string,
  "emailAddress": string,
  "givenName": string,
  "familyName": string,
  "profileId": string,
  "acknowledgementState": integer,
  "externalAccountId": string,
  "promotionType": integer,
  "promotionCode": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
Alanlar
kind

string

Bu tür, androidpublisher hizmetinde bir subscriptionPurchase nesnesini temsil eder.

startTimeMillis

string (int64 format)

Aboneliğin verildiği zaman (Epoch'tan beri geçen milisaniye cinsinden).

expiryTimeMillis

string (int64 format)

Aboneliğin sona ereceği zaman (Epoch'tan beri geçen milisaniye cinsinden).

autoResumeTimeMillis

string (int64 format)

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

boolean

Aboneliğin, geçerli son kullanma zamanına ulaştığında otomatik olarak yenilenip yenilenmeyeceği.

priceCurrencyCode

string

Abonelik fiyatı için ISO 4217 para birimi kodu. Örneğin, fiyat İngiliz sterlini cinsinden belirtilmişse priceCurrencyCode "GBP" olur.

priceAmountMicros

string (int64 format)

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

object (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

string

Abonelik verildiği sırada kullanıcının ISO 3166-1 alfa-2 fatura ülkesi/bölge kodu.

developerPayload

string

Bir siparişle ilgili ek bilgiler içeren, geliştirici tarafından belirtilen dize.

paymentState

integer

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

integer

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

string (int64 format)

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

object (SubscriptionCancelSurveyResult)

Kullanıcının abonelik iptali sürecini tamamlarken sağladığı bilgiler (iptal nedeni anketi).

orderId

string

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

string

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

integer

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

object (SubscriptionPriceChange)

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

string

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

string

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

string

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

string

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

string

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

integer

Abonelik ürününün onay durumu. Olası değerler: 0. Henüz onaylanmadı 1. Onaylandı

externalAccountId

string

Üçü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

integer

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

string

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

string

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

string

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

string

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

string (int64 format)

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

string

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

integer

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

integer

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

string

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 (Price)
  },
  "state": integer
}
Alanlar
newPrice

object (Price)

Fiyat değişikliği kullanıcı tarafından kabul edilirse aboneliğin yenileneceği yeni fiyat.

state

integer

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

acknowledge

Abonelik satın alma işlemini onaylar.

cancel

Kullanıcının abonelik satın alma işlemini iptal eder.

defer

Kullanıcının abonelik satın alma işlemini, gelecekteki belirli bir son kullanma tarihine kadar erteler.

get
(deprecated)

Desteği sonlandırıldı: Bunun yerine purchases.subscriptionsv2.get yöntemini kullanın.

refund
(deprecated)

Desteği sonlandırıldı: Bunun yerine orders.refund'u kullanın.

revoke
(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.