Google Play Faturalandırma dışında para kazanmayla ilgili arka uç entegrasyonu kılavuzu

Google Play Geliştirici API'si artık İşlemleri alternatif faturalandırmadan bildirme işlevi veya harici teklif sistemini kullanarak değiştirebilirsiniz. Bu kılavuzda, alternatiflerin nasıl bildirileceği açıklanmaktadır. faturalandırma veya harici teklif işlemleri olabilir.

Uygulama içi dönüşümleri yönetmek için gerekli olabilecek birkaç bileşen vardır. arka ucunuzdan satın alabilirsiniz. Bunları derlemek için arka ucunuzu ayarlamanız gerekir Google Play Geliştirici API'sini yapılandırma bölümünde gösterildiği gibi entegredir. Örneğin, alternatif faturalandırmaya özgü olmayan tüm geliştirici arka uç işlevleri veya harici teklif API'leri için Google Play faturalandırma sistemi belgeleri geçerlidir.

Yeni harici işlemleri Google Play'e bildirme

Externaltransactions APIs ile entegrasyon Google Play'in faturalandırma sistemi dışında gerçekleşen işlemleri bildirmek için Desteklenen ülkelerde (ücretsiz denemeden kaynaklanan işlem ücreti yok dahil) değeri için teklif verirsiniz. Alternatif faturalandırma veya harici teklif sistemlerindeki işlemler izin verilen şekilde, yalnızca uygun kullanıcı ülkeleri için başlatılmalı ve raporlanmalıdır. alternatif faturalandırma kapsamında veya harici teklif programları içeriyorsa API çağrısı reddedildi. Bu, yeni satın alma işlemleri, yenilemeler, satın alma işlemleri para ekleme, yükseltme, düşürme vb.

Harici işlem raporlaması

Harici bir işlemi bildirmek için Externaltransactions API numarasını aramalısınız. Alternatif faturalandırma yoluyla ödeme yetkilendirildikten sonra veya harici teklif sistemini kullanabiliriz. Bu, ilk işlemler dahil olmak üzere tüm işlemler için geçerlidir. ödemeler, yenilemeler, geri ödemeler vb. Tüm işlemlerin İşlemin gerçekleşmesinden sonraki 24 saat içinde bildirilir.

Her harici işlem, harici bir işlem kimliğiyle raporlanır. Örneğin, (otomatik yenilenebilir abonelikler gibi) yinelenen satın alma işlemleri için yinelenen gruptaki ilk işlemle ilişkili harici işlem kimliği satın alma işlevini, geri ödemeler dahil sonraki işlemler için parametre olarak kullanabilirsiniz. Bu o satın alma işlemine yönelik işlem dizisini kaydeder. Yeni bir harici ürün değiştiğinde (ör. yükseltme veya abonelik alt sürüme geçirilmesi) ya da yinelenen işlemin iptal edilmesi veya süresinin dolması ve yine aynı işlemi daha sonra tekrar satın alındığından emin olun. Kimliği tanımlayabilecek herhangi bir bilgi eklememelisiniz. Google'a ait bu harici belgedeki bilgilerin, tescilli veya gizli işlem kimliği.

Yeni bir satın alma işlemi bildirin

Alternatif faturalandırmada gerçekleştirilen her yeni satın alma işlemi veya harici teklif sistemindeyken Externaltransactions API'ye yapılan bir çağrıdır. gereklidir. Bu yeni satın alma işlemleri için benzersiz bir değer sağlamanız gerekir Arka ucunuzda sorgu olarak satın alma işlemiyle ilişkilendirilen externalTransactionId parametresinden sonra bir değer girin. Bu externalTransactionId, aynı uygulamanın içinde tekrar kullanılamaz paket kimliği.

Uygulamanın şu tarihlerle aldığı externalTransactionToken: UserChoiceBillingListener AlternativeBillingOnlyReportingDetailsListener, veya ExternalOfferReportingDetailsListener geri çağırma da ve ilk kez satın alımlara yönelik istek gövdesi. yinelenen satın alma (ör. abonelik) Her iki durumda da, ilk işlem. İlk işlemden sonra externalTransactionToken artık gerekli değil. Bildirimde bulunmak için işlem (örneğin abonelik yenilemeleri) için yeni bir benzersiz externalTransactionId. Bir satın alma işlemiyle ilgili sonraki işlemleri raporlama konusuna bakın. .

Örnek:

  1. Bir geliştirici, uygulamasında alternatif faturalandırmayı yapılandırıp etkinleştirir.
  2. 1. Kullanıcı, desteklenen bir ülke olan Güney Kore'de ve satın alma girişiminde bulunuyor product1, bir ay ücretsiz deneme teklifiyle ayda 12.634, 10 KRW karşılığında.
  3. Uygulama, product1 için ProductDetails ile satın alma akışını başlatır ve kullanıcının seçtiği teklif.
  4. 1. kullanıcı, geliştiricinin alternatif faturalandırma sistemini seçer.
  5. UserChoiceBillingListener, my_token değerini externalTransactionToken.
  6. Daha sonra geliştirici, ilgili bilgileri arka uca gönderir. (externalTransactionToken değerinde ve satın alınan ürün). Sonra Alternatif faturalandırma sisteminde product1 için satın alma akışını başlatma. Bu işleme geliştirici tarafında benzersiz bir işlem kimliği atanır Google Play'e bildirmek için kullanılan: 123-456-789. İşlem kimliği Kullanıcı ücretsiz deneme hakkı alıyor olsa bile gereklidir.
  7. Satın alma işlemi alternatif faturalandırmada gerçekleştikten sonra kullandığında, geliştirici, kullandığı takip edebilirsiniz. Başlangıçta sıfır dolar işlem olarak raporlanır çünkü kullanıcı bir ay ücretsiz.
POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=123-456-789

Body
 {
"originalPreTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },
 "originalTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },
"transactionTime" : "2022-02-22T12:45:00Z",
 "recurringTransaction" : {
   "externalTransactionToken": "my_token",
   "externalSubscription" {
     "subscriptionType": "RECURRING"
   }
 },
 "userTaxAddress" : {
   "regionCode": "KR"
 }
}

Verginin değiştiği Hindistan'da ikamet eden bir kullanıcıyla işlem yapıyorsanız bölge (eyalet veya il gibi) içeriyorsa, işletmenizin bu userTaxAddress altını seçin. Şuradaki önceden tanımlanmış dize listesine bakın: Geçerli idari bölgeler için API başvuru kılavuzu.

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=123-456-789

Body
 {
"originalPreTaxAmount" : {
   "priceMicros": "0",
   "currency": "INR"
 },
 "originalTaxAmount" : {
   "priceMicros": "0",
   "currency": "INR"
 },
"transactionTime" : "2023-11-01T12:45:00Z",
 "recurringTransaction" : {
   "externalTransactionToken": "my_token",
   "externalSubscription" {
     "subscriptionType": "RECURRING"
   }
 },
 "userTaxAddress" : {
   # Tax varies in India based on state, so include that information in
   # administrativeArea
   "regionCode": "IN"
   "administrativeArea": "KERALA"
 }
}

Bir satın alma işleminin sonraki işlemlerini raporlama

Bazı durumlarda, aynı öğeyle ilişkilendirilmiş birden fazla kullanıcı ödemesi olabilir. Harici satın alma (ör. abonelik yenilemeleri veya ön ödemeli plana para ekleme) Sonraki işlemleri aynı API'yi kullanarak bildirebilirsiniz: Externaltransactions Yeni bir satın alma işlemini bildirme konusunda açıklandığı gibi externalTransactionToken sonraki işlemler için gerekli değildir. Bunun yerine Her kampanya için sorgu parametresi olarak yeni bir benzersiz externalTransactionId gönderilir. Yenileme veya para ekleme işlemi (ilk işlemin kimliği dahil) initialExternalTransactionId alanına girin.

Önceki örneğe göre:

  1. 1. kullanıcının ilk yenileme işlemi alternatif faturalandırma sisteminde gerçekleştirilir. İlk işlem kimliği 123-456-789 idi.
  2. Geliştirici, işlemin yinelenme durumunu URL sorgu parametresinde bildirir için kullanılacak harici işlem kimliği olarak tanımlar ve İlk işlemin harici işlem kimliği initialExternalTransactionId alanı boş bırakılamaz.

Örnek istek:

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=abc-def-ghi

Body
 {
"originalPreTaxAmount" : {
   "priceMicros": "12634000000",
   "currency": "KRW"
 },
 "originalTaxAmount" : {
   "priceMicros": "1263000000",
   "currency": "KRW"
 },
"transactionTime" : "2022-02-22T12:45:00Z",
 "recurringTransaction" : {
   "initialExternalTransactionId": "123-456-789",

   "externalSubscription" {
     "subscriptionType": "RECURRING"
   }
 },
 "userTaxAddress" : {
   "regionCode": "KR"
 }
}

Sürüm yükseltme veya düşürme

Kullanıcı bir aboneliğe sahip olduğunda yükseltme veya düşürme bildirmek için aynı uç noktayı ve işlevi kullanıyorsanız, Externaltransactions API, gönderilen externalTransactionToken yükseltme veya düşürme işlemi için uygulamaya sağlanır. Bu komut çalışır yeni bir satın alma işlemini bildirmeye benzer.

Alternatif faturalandırma işlemlerinin manuel olarak raporlanmasından geçiş yapın

Alternatif bir yöntem sunduğunuz sırada başlatılan etkin abonelikleri taşımak için otomatik raporlama olmadan yeni bir sıfır maliyetli işlem oluşturmak için migratedTransactionProgram alanı için bir değer belirtmek yerine initialExternalTransactionId veya externalTransactionToken. Ayarlayın: Kullanıcının her bir etkin için ilk kaydolduğu zamana kadar transactionTime abonelik. Daha sonra, bu anahtar kelimelerle ilgili sonraki her işlemi normal şekilde API'ler aracılığıyla aboneliklerine Yenileme işlemlerini oluşturmak için yukarıda initialExternalTransactionId kullanıldı. Abonelik taşındıktan sonra artık manuel olarak bildirimde bulunmanız gerekmez. abonelik için sonraki işlemlerde (bu bilgilerin gerçekten bu sayfada açıklanan otomatik yöntemlerle raporlanır.

Abonelikleri taşırken aşağıdaki kota sınırlarını göz önünde bulundurun: Taşıma işleminin kota kesintisine neden olmamasını sağlar. Birçok aboneliğin birden fazla güne yaymalarını veya harcama sonrası kotada ,

migratedTransactionProgram alanı yalnızca şuradan taşıma sırasında kullanılabilir: manuel raporlama. Manuel raporlama kullanımdan kaldırıldığında bu çözüm de kullanımdan kaldırılacaktır desteklenir.

Örnek istek:

# Note that the externalTransactionId specified here will used to report subsequent
# transactions.

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=abc-def-ghi

Body
 {
 # Be sure to set the price to 0 for this transaction since it does not reflect
 # an actual subscription renewal.
 "originalPreTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },
 "originalTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },

 # The transaction time should be set to when the user signed up for this
 # subscription.
 "transactionTime" : "2022-02-22T12:45:00Z",
  "recurringTransaction" : {
    "migratedTransactionProgram": "USER_CHOICE_BILLING",

    "externalSubscription" {
      "subscriptionType": "RECURRING"
    }
  },
 "userTaxAddress" : {
   "regionCode": "KR"
 }
}

Play iş ortağı programlarını bildirme

Play Medya Oynatma Deneyimi Programı şunları sağlamalıdır: Harici işlemleri bildirirken transaction_program_code. Şu durumda: hakkında daha fazla bilgi edinmek için lütfen İş Geliştirme Yöneticinizle iletişime geçin. daha fazla bilgi edinebilirsiniz.

Satın alma işlemleriyle ilgili geri ödemeleri Google Play'e bildirme

Geri ödeme yapılan işlemleri bildirmek için Externaltransactions API ile entegrasyon yapın. Google Play'in faturalandırma sisteminin dışındaki kullanıcılar Bu şekilde, Play Store'un hangi İşlemin geri ödemesi yapıldı. İlgili tutarı externalTransactionId URL parametreleri.

Abonelik satın alma işlemleriyle ilgili geri ödemeleri bildirirken İlgili aboneliğin yinelenme sıklığının externalTransactionId kadarı geri ödeme yapılıyor.

Örnek: Bir aboneliğin aşağıdaki işlemlere sahip olduğunu varsayalım:

  • Harici işlem kimliğine sahip ilk işlem ABC.1234-5678-9012-34567
  • Harici işlem kimliğine sahip ilk yinelenen işlem ABC.1234-5678-9012-34567..0
  • Harici işlem kimliğine sahip ikinci yinelenen işlem ABC.1234-5678-9012-34567..1

Abonelikle ilgili tüm işlemlerin geri ödemesini bildirmek için Üç ayrı geri ödeme isteği: biri ilk işlem, diğeri sonraki işlemler için de geçerlidir.

Bu yöntem hem tam geri ödemeleri kabul eder (Bu tutar, kullanıcının orijinal harici ödemede ödediği tutarla aynıdır) işlemi) ve kısmi geri ödemeler (tutar, orijinal harici ödeme kaynağında kullanıcının ödediği tutardan düşük olduğunda) işlemi) ekleyebilirsiniz. Kısmi geri ödemelerde vergi öncesi tutarı belirtmeniz gerekir. geri ödeme yapıldı.

API kotaları

Externaltransactions API, günlük API kotalarına tabidir. tüm çağrılar için geçerli olacaktır.

Ayrıca, Externaltransactions API'nin Dakikada 1.200 Sorgusu vardır Externaltransactions.createexternaltransaction veya Externaltransactions.refundexternaltransaction. Çağrılar: Externaltransactions.getexternaltransaction,bu 1.200 QPM'ye dahil edilmez limit.