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

André Cipriani Bandarra
André Cipriani Bandarra

Google Play Faturalandırma, uygulamanızın Play Store'da dijital ürünler ve abonelikler satmasına olanak tanımanın yanı sıra kataloğunuzu, fiyatlarınızı ve aboneliklerinizi yönetmeniz için araçlar, faydalı raporlar ve kullanıcılarınıza zaten aşina olan Play Store tarafından desteklenen bir ödeme akışı sunar. Ayrıca Play Store'da yayınlanan ve dijital ürünler satan uygulamalar için de bir zorunluluktur.

Chrome 88, Android'de 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 Payment Request API ve Digital Goods API ile entegrasyonunu sağlar. Bu kaynak denemesinin ChromeOS 89 sürümünde de kullanılabilmesini bekliyoruz.

Güvenilir Web Etkinliği ekibi, Android uygulamasıyla entegrasyonu kolaylaştırmak için android-browser-helper uygulamasına bir uzantı kitaplığı sunuyor. Bu kılavuzda, bu kitaplığı mevcut bir uygulamaya entegre etmek için gereken değişiklikler açıklanmaktadır.

Not: Bu makalelerde, Android uygulaması entegrasyonu ele alınmaktadır. Uygulamanızı oluşturmak için Bubblewrap kullanıyorsanız uygulamanızı güncellemek için bu aracı kullanabilirsiniz. Bubblewrap'taki uygulama bu sorundan izlenmektedir. Bu kılavuz, uygulamalarını güncellemek için Bubble wrap'u kullanmayan kullanıcılar için hazırlanmıştır.

build.gradle

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

Ayrıca, faturalandırma uzantısı kitaplığı için bir uygulama beyanı 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 gelir. Faturalandırma uzantısını kullanırken DelegationService öğesinin 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çinde, 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, Yetki Kitaplığı referansını kendi uygulamanızda değiştirmeniz gerekir. İlgili service bildiriminde, com.google.androidbrowserhelper.trusted.DelegationService ifadesini 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ığı ayrıca Android Manifest'inize eklenmesi gereken iki yeni bileşen sunar: tarayıcının bağlanabileceği ve uygulamanın ödemeyi destekleyip desteklemediğini kontrol edebileceği bir Hizmet ve ödeme akışının kendisini 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, Güvenilir Web Etkinliği'ni kullanan Android uygulamasında özel olarak 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. Bu SDK'yı üretimde bir uygulamaya entegre etmeden önce Google Play Faturalandırma ve Dijital Ürünler API'si belgelerini okuyup bu belgelerin kavramlarını anlamanızı önemle tavsiye ederiz.