Kaynak: ProductPurchase
ProductPurchase kaynağı, kullanıcının uygulama içi ürün satın alma işleminin durumunu gösterir.
| JSON gösterimi |
|---|
{ "kind": string, "purchaseTimeMillis": string, "purchaseState": integer, "consumptionState": integer, "developerPayload": string, "orderId": string, "purchaseType": integer, "acknowledgementState": integer, "purchaseToken": string, "productId": string, "quantity": integer, "obfuscatedExternalAccountId": string, "obfuscatedExternalProfileId": string, "regionCode": string, "refundableQuantity": integer } |
| Alanlar | |
|---|---|
kind |
Bu tür, androidpublisher hizmetindeki bir inappPurchase nesnesini temsil eder. |
purchaseTimeMillis |
Ürünün satın alındığı zaman (1 Ocak 1970'ten itibaren geçen milisaniye sayısı). |
purchaseState |
Siparişin satın alma durumu. Olası değerler: 0. Satın alınanlar 1. İptal edildi 2. Beklemede |
consumptionState |
Uygulama içi ürünün tüketim durumu. Olası değerler: 0. Henüz tüketilmedi 1. Tüketti |
developerPayload |
Bir siparişle ilgili ek bilgiler içeren, geliştirici tarafından belirtilen dize. |
orderId |
Uygulama içi ürünün satın alınmasıyla ilişkili sipariş kimliği. |
purchaseType |
Uygulama içi ürünün 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). Play Points ile yapılan satın alma işlemleri dahil değildir. 2. Ödüllü (ör. ödeme yapmak yerine video reklam izleyerek) |
acknowledgementState |
Uygulama içi ürünün onay durumu. Olası değerler: 0. Henüz onaylanmadı 1. Onaylandı |
purchaseToken |
Bu satın alma işlemini tanımlamak için oluşturulan satın alma jetonu. Mevcut olmayabilir. |
productId |
Uygulama içi ürün SKU'su. Mevcut olmayabilir. |
quantity |
Uygulama içi ürünün satın alınmasıyla ilişkili miktar. Yoksa miktar 1'dir. |
obfuscatedExternalAccountId |
Uygulamanızdaki kullanıcı hesabıyla 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#setobfuscatedaccountid kullanılarak belirtilmişse bulunur. |
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. |
regionCode |
Ürünün verildiği sırada kullanıcının ISO 3166-1 alfa-2 faturalandırma bölgesi kodu. |
refundableQuantity |
Geri ödeme için uygun olan miktar (yani geri ödemesi yapılmamış miktar). Değer, miktara dayalı kısmi geri ödemeleri ve tam geri ödemeleri yansıtır. |
Yöntemler |
|
|---|---|
|
Uygulama içi öğe satın alma işlemini onaylar. |
|
Uygulama içi öğe satın alma işlemini kullanır. |
|
Uygulama içi öğenin satın alma ve tüketim durumunu kontrol eder. |
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 |
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 |
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. |
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. |