- Kaynak: SubscriptionPurchase
- IntroductoryPriceInfo
- SubscriptionCancelSurveyResult
- SubscriptionPriceChange
- Yöntemler
Kaynak: SubscriptionPurchase
Desteği sonlandırıldı: Bunun yerine SubscriptionPurchaseV2'yi kullanın. 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 hizmetindeki 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 geçen milisaniye cinsinden). Yalnızca kullanıcı aboneliği duraklatmayı talep ettiyse gösterilir. |
autoRenewing |
Aboneliğin, geçerlilik süresi dolduğunda 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 |
Abonelik 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 dahildir. Fiyat, mikro birim cinsinden 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 bölüm 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 verilirken kullanıcının ISO 3166-1 alfa-2 fatura adresinin bulunduğu ülke 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ş yükseltme/düşürme işlemi beklemede İptal edilen veya süresi dolmuş aboneliklerde gösterilmez. |
cancelReason |
Aboneliğin iptal edilme veya otomatik olarak yenilenmeme nedeni. Olası değerler: 0. Kullanıcı, aboneliği iptal etti. Abonelik, sistem tarafından iptal edildi (ör. faturalandırma sorunu nedeniyle). 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önemden bu yana geçen milisaniye cinsinden). Yalnızca cancelReason 0 ise bulunur. |
cancelSurveyResult |
Kullanıcının abonelik iptali akışını 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ği olur. |
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 yükseltme/düşürme Ö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ınan) 1. Promosyon (ör. promosyon kodu kullanılarak satın alınan) |
priceChange |
En son fiyat değişikliği bilgileri Bu seçenek yalnızca abonelikte henüz uygulanmamış yaklaşan 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 verdiği 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 süreci'nin 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 seferlik kod 1. Özel kod |
promotionCode |
Bu satın alma işlemine uygulanan promosyon kodu. Bu alan yalnızca abonelik satın alınırken bir vanity kodu promosyonu uygulandıysa ayarlanır. |
obfuscatedExternalAccountId |
Uygulamanızda kullanıcının 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 sürecinin 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 |
Uygulamanızdaki kullanıcı 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 cinsinden 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 arasında (ancak bunlarla sınırlı olmamak üzere) "P1W" (bir hafta), "P1M" (bir ay), "P3M" (üç ay), "P6M" (altı ay) ve "P1Y" (bir yıl) bulunur. |
introductoryPriceCycles |
Tanıtım fiyatı sunulacak fatura dönemlerinin sayısı. |
SubscriptionCancelSurveyResult
Kullanıcının abonelik iptali akışını 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, uygulama içi API'yi kullanarak kullanıcıdan onay alabilirsiniz. 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, abonelik yenilendiğinde gelecekteki bir tarihte geçerli olur. Değişikliğin, abonelik bir sonraki yenilemede gerçekleşmeyebileceğini unutmayın. |
Yöntemler |
|
|---|---|
|
Abonelik satın alma işlemini onaylar. |
(deprecated) |
Desteği sonlandırıldı: Bunun yerine purchases.subscriptionsv2.cancel'ı kullanın. |
(deprecated) |
Desteği sonlandırıldı: Bunun yerine purchases.subscriptionsv2.defer'i 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 zamanını 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şlemin gerçekleştirilmesi için geçerli bir durumda değil. Örneğin, halihazırda kullanılan 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 gönderildi. Bu hata genellikle hatalı biçimlendirilmiş 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, Cancel 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 onaylanmadan önce geri ödeme yapıldıysa, iptal edildiyse veya 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. | İstekteki tüm bilgilerin doğru olduğunu ve birbirleriyle eşleştiğini doğrulayın. |
400 |
required |
İstekten gerekli 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 |
Aynı anda 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 |
İlişkili kullanıcı hesabı silindiği veya satın alma kaydı artık mevcut olmadığı için satın alma jetonu kalıcı olarak geçersiz. | 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 artık 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. |