Bu kılavuzda, yalnızca alternatif faturalandırma sunmak için API'lerin nasıl entegre edileceği açıklanmaktadır (ör. kullanıcıya tercih seçeneği sunulmayan uygulamalar) Bu programlarla ilgili daha fazla bilgi edinmek için (uygunluk koşulları ve coğrafi kapsam dahil) Alternatif hakkında Faturalandırma.
Play Faturalandırma Kitaplığı kurulumu
Android uygulamanıza Play Faturalandırma Kitaplığı bağımlılığını ekleyin. To 6.1 veya üzeri sürümleri kullanmanız gereken alternatif faturalandırma API'leri.
Google Play'e bağlanın
Entegrasyon sürecindeki ilk adımlar aşağıda açıklananlarla aynıdır: Google Play Faturalandırma entegrasyon kılavuzunu takip edin. BillingClient'ı başlatma:
- Uygulamanızın yalnızca
alternatif faturalandırma sistemi:
enableAlternativeBillingOnly
.
Aşağıdaki örnekte, bu yapılandırmalarla bir BillingClient
'nin ilk kullanıma hazırlanması gösterilmektedir
değişiklikler:
Kotlin
var billingClient = BillingClient.newBuilder(context)
.enableAlternativeBillingOnly()
.build()
Java
private BillingClient billingClient = BillingClient.newBuilder(context)
.enableAlternativeBillingOnly()
.build();
BillingClient
uygulamasını başlattıktan sonra, şurayla bağlantı kurmanız gerekir:
Google Play'i etkinleştirin.
Müsaitlik Durumu Kontrol Ediliyor
Uygulamanız, alternatif faturalandırmanın yalnızca şu numarayı arayarak kullanılabildiğini onaylamalıdır:
isAlternativeBillingOnlyAvailableAsync
.
Yalnızca alternatif faturalandırma şöyle ise bu API, BillingResponseCode.OK döndürür. kullanılabilir. Uygulamanızın nasıl olması gerektiğiyle ilgili ayrıntılar için yanıt işleme bölümüne bakın diğer yanıt kodlarına yanıt verebilirsiniz.
Kotlin
billingClient.isAlternativeBillingOnlyAvailableAsync(object:
AlternativeBillingOnlyAvailabilityListener {
override fun onAlternativeBillingOnlyAvailabilityResponse(
billingResult: BillingResult) {
if (billingResult.responseCode != BillingResponseCode.OK) {
// Handle failures such as retrying due to network errors,
// handling alternative billing only being unavailable, etc.
return
}
// Alternative billing only is available. Continue with steps in
// the guide.
}
});
Java
billingClient.isAlternativeBillingOnlyAvailable(
new AlternativeBillingOnlyAvailabilityListener() {
@Override
public void onAlternativeBillingOnlyAvailabilityResponse(
BillingResult billingResult) {
if (billingResult.getResponseCode() != BillingResponseCode.OK) {
// Handle failures such as retrying due to network errors,
// handling alternative billing only being unavailable,
// etc.
return;
}
// Alternative billing only is available. Continue with steps in
// the guide.
}
});
Kullanıcılar için bilgi iletişim kutusu
Yalnızca alternatif faturalandırma ile entegrasyon sağlamak için uygun uygulamanızda
Kullanıcıların faturalandırmanın yönetilmeyeceğini anlamalarına yardımcı olan bilgi ekranı
Google Play'den. Bilgi ekranı,
Başlamadan önce showAlternativeBillingOnlyInformationDialog
API
her seferinde alternatif faturalandırma akışı ekleyin. Kullanıcı
iletişim kutusu görüntülenirse bu API'nin kullanılması genellikle iletişim kutusunun
tekrar. İletişim kutusunun bir kullanıcıya tekrar gösterildiği durumlar olabilir.
örneğin, kullanıcının cihazındaki önbellekleri temizlemesi gibi.
Kotlin
// An activity reference from which the alternative billing only information
// dialog will be launched.
val activity : Activity = ...;
val listener : AlternativeBillingOnlyInformationDialogListener =
AlternativeBillingOnlyInformationDialogListener {
override fun onAlternativeBillingOnlyInformationDialogResponse(
billingResult: BillingResult) {
// check billingResult
}
}
val billingResult =
billingClient.showAlternativeBillingOnlyInformationDialog(activity,
listener)
Java
// An activity reference from which the alternative billing only information
// dialog will be launched.
Activity activity = ...;
AlternativeBillingOnlyInformationDialogListener listener =
new AlternativeBillingOnlyInformationDialogListener() {
@Override
public void onAlternativeBillingOnlyInformationDialogResponse(
BillingResult billingResult) {
// check billingResult
}
};
BillingResult billingResult =
billingClient.showAlternativeBillingOnlyInformationDialog(activity,
listener);
Bu yöntem BillingResponseCode.OK döndürürse uygulamanız devam edebilir önemli bir rol oynar. BillingResponseCode.USER_CANCELED durumunda uygulamanızın, kullanıcıya tekrar gönderebilirsiniz. Diğer yanıt kodları için yanıt işleme bölümünü inceleyin.
İşlemleri Google Play'e bildirme
Alternatif faturalandırma sistemi üzerinden gerçekleştirilen tüm işlemler bildirilmelidir
Google Play Geliştirici API'sini çağırarak Google Play'e
24 saat içinde geçerli olacak şekilde, externalTransactionToken
API aşağıda açıklanmıştır. Her biri için yeni bir externalTransactionToken oluşturulmalıdır
tek seferlik satın alımlarda, her yeni abonelikte ve abonelikten yeni bir
mevcut bir abonelikten yararlanın. Şu anda bir işlemi nasıl bildireceğinizi öğrenmek için
externalTransactionToken
alındıysa arka uç entegrasyon kılavuzuna bakın.
Kotlin
billingClient.createAlternativeBillingOnlyReportingDetailsAsync(object:
AlternativeBillingOnlyReportingDetailsListener {
override fun onAlternativeBillingOnlyTokenResponse(
billingResult: BillingResult,
alternativeBillingOnlyReportingDetails:
AlternativeBillingOnlyReportingDetails?) {
if (billingResult.responseCode != BillingResponseCode.OK) {
// Handle failures such as retrying due to network errors.
return
}
val externalTransactionToken =
alternativeBillingOnlyReportingDetails?
.externalTransactionToken
// Send transaction token to backend and report to Google Play.
}
});
Java
billingClient.createAlternativeBillingOnlyReportingDetailsAsync(
new AlternativeBillingOnlyReportingDetailsListener() {
@Override
public void onAlternativeBillingOnlyTokenResponse(
BillingResult billingResult,
@Nullable AlternativeBillingOnlyReportingDetails
alternativeBillingOnlyReportingDetails) {
if (billingResult.getResponseCode() != BillingResponseCode.OK) {
// Handle failures such as retrying due to network errors.
return;
}
String transactionToken =
alternativeBillingOnlyReportingDetails
.getExternalTransactionToken();
// Send transaction token to backend and report to Google Play.
}
});
Yanıt işleme
Yukarıdaki yöntemler isAlternativeBillingOnlyAvailableAsync(),
showAlternativeBillingOnlyInformationDialog()
ve
createAlternativeBillingOnlyReportingDetailsAsync()
dönebilir
hata olması durumunda non-BillingResponseCode.OK yanıtları. Önerilen
nasıl ele alındığı aşağıda açıklanmıştır:
ERROR
: Bu dahili bir hatadır. İşleme devam etmeyin. Şu numarayı arayarak tekrar deneyin: Bilgileri görüntülemek içinshowAlternativeBillingOnlyInformationDialog()
kullanıcıya bir sonraki seferde deneme yapmayı deneyin.FEATURE_NOT_SUPPORTED
: Alternatif faturalandırma API'leri Play Store'a gidin. İşleme devam etmeyin.USER_CANCELED
: İşleme devam etmeyin. Telefonla arama görüntülemek için tekrarshowAlternativeBillingOnlyInformationDialog()
tekrar düzenleme girişiminde bulunacağı zaman kullanıcıya değeri için teklif verirsiniz.BILLING_UNAVAILABLE
: İşlem, Bu program kapsamında devam edilmemelidir. Bu Bunun nedeni, kullanıcının bu programa uygun bir ülkede olmaması veya hesabınız programa başarıyla kaydedilmedi. Ülke son olarak, Play Console'da kayıt durumunuzu kontrol edin.DEVELOPER_ERROR
: İstekle ilgili bir hata var. Hata ayıklama mesajını kullanma inceleyin.NETWORK_ERROR, SERVICE_DISCONNECTED, SERVICE_UNAVAILABLE
: Bunlar geçici hatalar olup olmadığını kontrol edin. ProjedeSERVICE_DISCONNECTED
, şu tarihten önce Google Play ile yeniden bağlantı kurdu: yeniden deneniyor.
Alternatif faturalandırmayı test etme
Alternatif faturalandırma entegrasyonunuzu test etmek için lisans test kullanıcıları kullanılmalıdır. Siz Lisans test kullanıcısı tarafından başlatılan işlemler için faturalandırılmayacaktır. hesaplar. Daha fazla bilgi için Uygulama içi faturalandırmayı uygulama lisanslama ile test etme başlıklı makaleye bakın. lisans test kullanıcılarını yapılandırma hakkında bilgi edinin.
Sonraki adımlar
Uygulama içi entegrasyonu tamamladıktan sonra, uygulamanızı arka uç.