Bu kılavuzda, harici teklifleri desteklemek için API'lerle nasıl entegrasyon sağlanacağı açıklanmaktadır. uygun uygulama ve bölgelerde kullanabilirsiniz. Harici teklif programı hakkında daha fazla bilgi edinin. ve coğrafi kapsam dahil olmak üzere program şartlarına tabidir.
Play Faturalandırma Kitaplığı kurulumu
Harici teklif API'lerini kullanmak için: Play Faturalandırma Kitaplığı bağımlılığının 6.2.1 veya sonraki bir sürümünü ekleyin bağlayın. Önceki bir sürümden taşıma işlemi gerçekleştirmeniz gerekiyorsa kullanmayı denemeden önce taşıma rehberindeki talimatları hariç tutmanızı öneririz.
Google Play'e bağlanın
Entegrasyon sürecindeki ilk adımlar aşağıda açıklananlarla aynıdır:
faturalandırma entegrasyon kılavuzunu kullanarak
BillingClient
cihazınız başlatılıyor:
- Harici harici reklam kullanmak istediğinizi belirtmek için yeni bir yöntem çağırmanız gerekir
teklifler:
enableExternalOffer
.
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)
.enableExternalOffer()
.build()
Java
private BillingClient billingClient = BillingClient.newBuilder(context)
.enableExternalOffer()
.build();
BillingClient
uygulamasını başlattıktan sonra, şurayla bağlantı kurmanız gerekir:
Google Play'i etkinleştirin.
Müsaitlik durumunu kontrol edin
Uygulamanız, harici tekliflerin kullanılabilir olduğunu telefon ederek onaylamalıdır
isExternalOfferAvailableAsync
.
Harici teklifler varsa bu API, BillingResponseCode.OK
değerini döndürür.
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.isExternalOfferAvailableAsync(
object : ExternalOfferAvailabilityListener {
override fun onExternalOfferAvailabilityResponse(
billingResult: BillingResult) {
if (billingResult.responseCode != BillingResponseCode.OK) {
// Handle failures such as retrying due to network errors,
// handling external offers unavailable, etc.
return
}
// External offers are available. Continue with steps in the
// guide.
})
Java
billingClient.isExternalOfferAvailableAsync(
new ExternalOfferAvailabilityListener() {
@Override
public void onExternalOfferAvailabilityResponse(
BillingResult billingResult) {
if (billingResult.getResponseCode() != BillingResponseCode.OK) {
// Handle failures such as retrying due to network errors,
// handling external offers being unavailable, etc.
return;
}
// External offers are available. Continue with steps in the
// guide.
}
});
Harici işlem jetonu hazırlama
Harici bir işlemi Google Play'e bildirmek için harici bir işleminiz olması gerekir
Play Faturalandırma Kitaplığı'ndan oluşturulan işlem jetonu. Yeni bir harici
işlem jetonu, kullanıcı harici bir web sitesini her ziyaret ettiğinde oluşturulmalıdır
web sitesini ziyaret edin. Bu işlem,
createExternalOfferReportingDetailsAsync
API. Bu jeton,
Kullanıcı uygulamanın dışına yönlendirilmeden hemen önce oluşturulur. Uygulama
hiçbir zaman önbelleğe alınmaz ve kullanıcı her yönlendirildiğinde yeni bir tane oluşturulmalıdır.
pek çok olanağı vardır.
Kotlin
billingClient.createExternalOfferReportingDetailsAsync(
object : ExternalOfferReportingDetailsListener {
override fun onExternalOfferReportingDetailsResponse(
billingResult: BillingResult,
externalOfferReportingDetails: ExternalOfferReportingDetails?) {
if (billingResult.responseCode != BillingResponseCode.OK) {
// Handle failures such as retrying due to network errors.
return
}
val externalTransactionToken =
externalOfferReportingDetails?.externalTransactionToken
// Persist the transaction token locally. Pass it to the external
// website when showExternalOfferInformationDialog is called.
}
})
Java
billingClient.createExternalOfferReportingDetailsAsync(
new ExternalOfferReportingDetailsListener() {
@Override
public void onExternalOfferReportingDetailsResponse(
BillingResult billingResult,
@Nullable ExternalOfferReportingDetails
externalOfferReportingDetails) {
if (billingResult.getResponseCode() != BillingResponseCode.OK) {
// Handle failures such as retrying due to network errors.
return;
}
String transactionToken =
externalOfferReportingDetails.getExternalTransactionToken();
// Persist the external transaction token locally. Pass it to the
// external website when showExternalOfferInformationDialog is
// called.
}
});
Kullanıcılar için bilgi iletişim kutusu
Harici tekliflerle entegrasyon için uygun uygulamanızda bir bilgi gösterilmelidir
Bu ekran, kullanıcıların dışarı yönlendirilmek üzere olduklarını anlamalarını sağlar.
harici bir web sitesine
gönderebiliriz. Bilgi ekranı, kullanıcılara
birshowExternalOfferInformationDialog
her seferinde harici teklife denk geliyor.
Kotlin
// An activity reference from which the external offers information dialog
// will be launched.
val activity : Activity = ...;
val listener : ExternalOfferInformationDialogListener =
ExternalOfferInformationDialogListener {
override fun onExternalOfferInformationDialogResponse(
billingResult: BillingResult){
// Check billingResult
}
}
val billingResult = billingClient.showExternalOfferInformationDialog(
activity, listener)
Java
// An activity reference from which the external offers information dialog
// will be launched.
Activity activity = ...;
ExternalOfferInformationDialogListener listener =
new ExternalOfferInformationDialogListener() {
@Override
public void onExternalOfferInformationDialogResponse(
BillingResult billingResult) {
if (billingResult.responseCode != BillingResponseCode.OK) {
// Handle failures such as retrying due to network errors.
}
// Open the external website, passing along the external transaction
// token as a URL parameter. If the user purchases an item, be sure
// to report the transaction to Google Play.
}
}
BillingResult billingResult =
billingClient.showExternalOfferInformationDialog(activity, listener);
Bu yöntem BillingResponseCode.OK
döndürürse uygulamanız
Kullanıcıyı harici web sitesine yönlendirmek. Yöntem,
BillingResponseCode.USER_CANCELED
, uygulamanız
web sitesi.
İşlemleri Google Play'e bildirme
Tüm harici işlemler Google Play'e bildirilmelidir.
Google Play Geliştirici API'sini çağırarak erişebilirsiniz. Harici işlemler
Aynı zamanda
externalTransactionToken
,
createExternalOfferReportingDetailsAsync
API. Bir kullanıcı birden fazla
kullanıyorsanız, yine aynı
Her satın alma işlemini bildirmek için externalTransactionToken
. Bir
işlemi için arka uç entegrasyon kılavuzuna bakın.
Yanıt işleme
Bir hata oluştuğunda isExternalOfferAvailableAsync
,
createExternalOfferReportingDetailsAsync
ve
showExternalOfferInformationDialog
, şundan farklı yanıtlar döndürebilir:
BillingResponseCode.OK
. Bu yanıt kodlarını aşağıdaki şekilde ele alabilirsiniz:
ERROR
: Bu dahili bir hatadır. İşleme devam etmeyin veya Harici web sitesini açma. Şu numarayı arayarak tekrar deneyin: Bilgileri görüntülemek içinshowExternalOfferInformationDialog()
tekrar denediğinizde kullanıcıya gösterilen iletişim kutusunu uygulamasını indirin.FEATURE_NOT_SUPPORTED
: Harici teklif API'leri şu kuruluş tarafından desteklenmiyor: Play Store'a gidin. İşleme devam etmeyin veya Harici web sitesini açma.USER_CANCELED
: Harici web sitesini açma işlemine devam etmeyin. Telefonla arama Bilgileri göstermek içinshowExternalOfferInformationDialog()
tekrar yönlendirme girişiminde bulunduğunuzda kullanıcıya iletişim kutusunu görebilirsiniz.BILLING_UNAVAILABLE
: İşlem harici teklifler için uygun değil bu nedenle bu programa katılmamanız gerekir. Bunun nedeni, Kullanıcı bu program için uygun bir ülkede değildir veya hesabınız Programa başarıyla kaydettirilmedi. İkincisiyse kontrol edin. kayıt durumunuz hakkında bilgi edinin.DEVELOPER_ERROR
: İstekle ilgili bir hata var. Hata ayıklama mesajını kullanma inceleyin.NETWORK_ERROR, SERVICE_DISCONNECTED, SERVICE_UNAVAILABLE
: Bunlar uygun bir yeniden deneme politikasıyla ele alınması gereken geçici hatalar içerir.SERVICE_DISCONNECTED
durumunda, Google Play'e bakın.
Harici teklifleri test etme
Lisans test kullanıcıları, harici teklif entegrasyonunuzu test etmek için 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ç.