Play Faturalandırma'yı Güvenilir Web Etkinliğinizde Kullanma

Google Play Faturalandırma, uygulamanızın Play Store'da dijital ürün ve abonelik satmasına olanak tanımanın yanı sıra kataloğunuzu, fiyatlarınızı ve aboneliklerinizi yönetmenize yardımcı olacak araçlar, faydalı raporlar ve Play Store tarafından desteklenen, kullanıcılarınıza aşina oldukları bir ödeme akışı sunar. Bu, Play Store'da dijital ürün satan uygulamaların da şartıdır.

Chrome 88, Android'de bir Kaynak Denemesi ile kullanıma sunuluyor. Bu özellik, Google Play Faturalandırma aracılığıyla satın alma akışlarını uygulamak için Güvenilir Web Etkinlikleri'nin Ödeme İsteği API'si ve Digital Goods API ile entegrasyonunu mümkün kılar. Bu Kaynak Deneme Sürümü'nün ChromeOS 89 sürümünde de kullanıma sunulmasını bekliyoruz.

Trusted Web Activity ekibi, Android uygulamasıyla entegrasyonu kolaylaştırmak için android-browser-helper'a bir uzantı kitaplığı ekliyor. Bu kılavuzda, bu kitaplığı mevcut bir uygulamaya entegre etmek için gereken değişiklikler gösterilmektedir.

Not: Bu makale, Android uygulamasıyla ilgili entegrasyonu kapsamaktadır. Uygulamanızı oluşturmak için Bubblepack'i kullanıyorsanız bu aracı kullanarak uygulamanızı güncelleyebilirsiniz. BubbleWrap'taki uygulama bu sayı içinde izlenmektedir. Bu kılavuz, uygulamalarını güncellemek için Bubblewrap'ı kullanmayan kullanıcılar için hazırlanmıştır.

build.gradle

Faturalandırma uzantısı kitaplığı, android-browser-helper'ın 2.1.0 sürümüne bağlıdır. Uygulamanızın, bu sürüme eşit veya bundan daha yeni bir sürüm kullandığından emin olun.

Faturalandırma uzantısı kitaplığı için bir uygulama beyanı da eklemeniz gerekir:

dependencies {
    ...
    implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.1.0'
    implementation 'com.google.androidbrowserhelper:billing:1.0.0-alpha05'
}

DelegationService.java

android-browser-helper, doğrudan uygulamalar tarafından kullanılabilecek varsayılan bir DelegationService ile birlikte sunulur. Faturalandırma uzantısını kullanırken DelegationService dosyasının biraz özelleştirilmiş bir sürümüne ihtiyacınız vardır.

Bunu yapmak için, orijinal sınıfı genişleten ve onCreate() sınıfını geçersiz kılan kendi DelegationService sınıfınızı oluşturmanız gerekir. onCreate() içine, uygulamayı Digital Goods API için işleyici olarak kaydeden tek bir yöntem çağrısı eklemeniz gerekir:

package com.example.yourapp;

import com.google.androidbrowserhelper.playbilling.digitalgoods.DigitalGoodsRequestHandler;
import com.google.androidbrowserhelper.trusted.DelegationService;

public class DelegationService
        extends com.google.androidbrowserhelper.trusted.DelegationService {
    @Override
    public void onCreate() {
        super.onCreate();
        registerExtraCommandHandler(new DigitalGoodsRequestHandler(getApplicationContext()));
    }
}

AndroidManifest.xml

Android Manifest'te, Delegasyon Kitaplığı'na yapılan referansı kendi uygulamanızla değiştirmeniz gerekir. İlgili service beyanında com.google.androidbrowserhelper.trusted.DelegationService değerini yeni oluşturduğunuz sınıfla değiştirin.

<service
    android:name=".DelegationService"
    android:exported="true">

    <intent-filter>
        <action android:name="android.support.customtabs.trusted.TRUSTED_WEB_ACTIVITY_SERVICE"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</service>

Faturalandırma kitaplığı, Android manifest dosyanıza eklenmesi gereken iki yeni bileşen de sunar: Tarayıcının bağlanıp uygulamanın ödemeyi destekleyip desteklemediğini kontrol edebileceği bir Hizmet ve ödeme akışını yöneten bir Etkinlik:

<activity
    android:name="com.google.androidbrowserhelper.playbilling.provider.PaymentActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="keyboardHidden|keyboard|orientation|screenLayout|screenSize"
    android:exported="true">
    <intent-filter>
        <action android:name="org.chromium.intent.action.PAY" />
    </intent-filter>
    <meta-data
        android:name="org.chromium.default_payment_method_name"
        android:value="https://play.google.com/billing" />
</activity>
<!-- This service checks who calls it at runtime. -->
<service
    android:name="com.google.androidbrowserhelper.playbilling.provider.PaymentService"
    android:exported="true" >
    <intent-filter>
        <action android:name="org.chromium.intent.action.IS_READY_TO_PAY" />
    </intent-filter>
</service>

Digital Goods API ve Google Play Faturalandırma hakkında daha fazla bilgi

Bu makalede, özellikle Güvenilir Web Etkinliği kullanan Android uygulamasında gereken adımlar ele alınmıştır. Ancak Google Play Faturalandırma API'sinin kendi terminolojisi vardır ve istemci ile arka uç bileşenlerini içerir. Google Play Faturalandırma ve Dijital Ürünler API'si dokümanlarını okumanızı ve bu API'yi üretimdeki bir uygulamaya entegre etmeden önce kavramlarını anlamanızı önemle tavsiye ederiz.