Android APK Kimlik Doğrulama API'si

Kimlik doğrulama üç farklı ortamda gerçekleşebilir:

  • Ödeme entegratörünün Android uygulaması
  • Ödeme entegratörünün mobil web sitesi
  • Ödeme entegratörünün masaüstü web sitesi

Google, akıştan bağımsız olarak kullanıcı etkileşimini Ödeme entegratörünün yazılımına aktarır. Ödeme entegratörü, kullanıcıya bir arayüz göstermeyi seçebilir veya halihazırda uygun verilere sahipse hemen geri dönebilir. Tüm akışlar, entegratörün bir AuthenticationResponse üretmesiyle sonuçlanır. Bu yanıt imzalanır ve Google'a geri gönderilir.

Mobil ve masaüstü web siteleri, WebRedirect Authentication API Spesifikasyonu'na uymalı, Android Uygulama akışı ise Android Authentication API Spesifikasyonu'na uymalıdır.

Entegre ediciler, kullanıcıların kimliğini doğrulamak için bir Android APK çözümü uygulamalıdır. Bu kimlik doğrulama yöntemi farklı bir yöntemdir ancak Web kimlik doğrulaması tarafından sağlanan kimlik doğrulama ile aynıdır.

Kullanıcı, bir Android Etkinliği aracılığıyla ödeme entegratörü ile kimlik doğrulaması yapar. Kimlik doğrulama amacı, hesap ilişkilendirmesi sırasında ve kullanıcı meydan okumaları için çağrılır. Android'in kimlik doğrulama sırasında arka planda Play'i sonlandırmasını önlemek için entegratörün etkinlik temasına aşağıdakileri eklemesi gerekir.

<item name="android:windowIsTranslucent">true</item>

Yöntem tanımı

Niyetin aşağıdaki özelliklere sahip olması gerekir:

Yöntem özellikleri
İşlem com.google.android.payments.standard.AUTHENTICATE_V1
Kategori android.intent.category.DEFAULT

İstek

Alanlar
gspAuthenticationRequest AuthenticationRequest

Kimlik doğrulama isteği.

gspAssociationId string

Bu parametre mevcutsa bu entegratörün, sorgulama yapılan kullanıcının kimlik bilgilerini aramak için kullandığı bir tanımlayıcıyı içerir. Bu etiket yoksa kullanıcı, hesap kimliğini değiştirebilir.

Yanıt

Kullanıcı kimlik doğrulamasını tamamladıktan sonra, uygulamanızın sonuç amacını Google'a geri göndermesi gerekir. Kimlik doğrulama başarılı olursa bir amaç oluşturun ve şifrelenmiş gsp AuthenticationResponse'ı ekstra olarak ekleyin. Daha sonra, etkinlik sonucunu uygun sonuç koduna ayarlayın.

...
result.setExtra("gspAuthenticationResponse", gspAuthenticationResponse);
setResult(Activity.RESULT_OK, result);
...
finish();

Sonuç

Alanlar
sonuç int

Activity.RESULT_OK
Kimlik doğrulama başarılı oldu.
Activity.RESULT_CANCELED Kullanıcı akışı manuel olarak iptal etti ve akış iptal edilecek.
Activity.RESULT_FIRST_USER Önemli bir nedenden dolayı kimlik doğrulama başarısız oldu ve akış iptal edilecek. IE sunucusu girişte HTTP 500 yanıtı döndürdü.

Ekstralar

Alanlar
gspAuthenticationResponse AuthenticationResponse

Kimlik doğrulama yanıtı. Bu kodlanmış değer 1 KB'ı aşmamalıdır.

Diğer etkinlik şartları

Yukarıda belirtilen AUTHENTICATE_V1 işlemini destekleyen etkinlik, API'yi arayanların yalnızca Google tarafından imzalanmış uygulamalardan gelip gelmediğini de kontrol etmelidir. Bu işlem, diğer uygulamaların etkinliğinizi çağırmaya ve kimlik jetonları almaya çalışmasını önlemeye yardımcı olur. Bu işlem, Etkinlik uygulamanızda super.onCreate öğesinin hemen ardından verilen StandardPaymentUtils.verifyCallingActivityIsGoogleSigned öğesini kullanarak yapılabilir.

Aşağıda örneği verilmiştir:


@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);

  ....
}

authenticate akışında çağrılan tüm etkinlikler, windowIsTranslucent=true içeren bir etkinlik teması sağlamalıdır. Bu işlem, Context.setTheme() kullanılmadan AndroidManifest android:theme özelliğiyle yapılmalıdır. Programlı olarak, temanın pencere şeffaflığı için doğru şekilde ayarlanması işe yaramaz. Google, başlatılan ilk etkinliğin bu kalıbı takip etmesini zorunlu kılar, ancak başlatılan tüm alt etkinlikler de bu kalıbı izlemelidir. Aksi takdirde, 3. taraf geliştiricilerden satın alma işlemi yapılamayabilir.