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 yönelik araçlar, faydalı raporlar ve kullanıcılarınızın aşina olduğu, Play Store tarafından desteklenen bir ödeme akışı sunar. Bu, Play Store'da dijital ürün satan uygulamaların da şartıdır.

Chrome 88, Android'de Google Play Faturalandırma üzerinden satın alma işlemlerini uygulamak için Güvenilir Web Etkinlikleri'nin Payment Request API ve Digital Goods API ile entegrasyonunu sağlayan bir Origin Trial ile kullanıma sunuluyor. Bu Kaynak Deneme Sürümü'nün ChromeOS 89 sürümünde de kullanıma sunulmasını bekliyoruz.

Güvenilir Web Etkinliği 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ının entegrasyonunu kapsar. Uygulamanızı oluşturmak için Bubblewrap'ı kullanıyorsanız uygulamanızı güncellemek için bu aracı kullanabilirsiniz. Bubblewrap'ta uygulamanın uygulanması bu sorunda takip edilmektedir. 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 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ılabilen varsayılan bir DelegationService ile birlikte gönderilir. 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.