Android APK Para Ekleme API'si

Para ekleme işlemi üç farklı ortamda yapılabilir:

  • Ö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 tanıdık gelen bir kullanıcı arayüzü uygular ancak akış özellikle kullanıcının bakiyesini tamamlamak için ayrılmalıdır. Diğer bir deyişle, kullanıcı, para ekleme akışına girmesi beklenen genel amaçlı bir kullanıcı arayüzüne yönlendirilmek yerine, para ekleme işlemine yönlendirilmelidir.

Tüm akışlar entegratörün bir TopUpRedirectResponse üretmesiyle sonuçlanır. Bu yanıt imzalanır ve Google'a geri gönderilir.

Mobil ve masaüstü web siteleri Web Top Up API Spesifikasyonuna uymalı, Android Uygulama akışı ise Android Para Kazanma API Spesifikasyonu'na uygun olmalıdır.

Entegratörler, kullanıcının kimliğini doğrulamak için bir Android APK çözümü uygulamalı ve ardından kullanıcıyı bakiyelerini tamamlayabilecekleri bir akıştan yönlendirmelidir. Bu ekleme farklı bir yöntem olsa da Web sitesine para ekleme tarafından sağlanan parayla aynı amacı taşır.

Kullanıcı, ödeme entegratörü uygulamasında akışa bir Android Etkinliği aracılığıyla girer. Para ekleme amacı, doğrudan kullanıcının satın alma işlemi gerçekleştirmek istediği bir Play uygulamasından çağrılabilir. Android'in yükleme sırasında arka planda Play'i sonlandırmasını önlemek için entegratörün aşağıdakileri etkinlik temasına dahil etmesi 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.TOPUP_V1
Kategori android.intent.category.DEFAULT

İstek

Alanlar
gspTopUpRequest TopUpRedirectRequest

Para ekleme isteği.

gspAssociationId string

Entegratörün, kullanıcının eklediği hesabın kimlik bilgilerini aramak için kullandığı bir tanımlayıcıyı içerir. Bu, AssociateAccountRequest'te hesap bağlama işlemi sırasında gönderilen ilişkilendirme kimliğidir.

Yanıt

Kullanıcı para ekleme akışını tamamladıktan sonra, uygulamanızın Google'a bir sonuç niyeti göndermesi gerekir. Para ekleme işlemi başarılı olursa intent oluşturun ve şifrelenmiş, şifrelenmiş gspTopUpResponse ve redirectRequestId değerlerini ekstra olarak ekleyin. Daha sonra, etkinlik sonucunu uygun sonuç koduna ayarlayın.

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

Sonuç

Alanlar
sonuç int

Activity.RESULT_OK
Para ekleme işlemi 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ı para ekleme işlemi başarısız oldu ve akış iptal edilecek. IE sunucusu girişte HTTP 500 yanıtı döndürdü.

Ekstralar

Alanlar
gspTopUpResponse TopUpRedirectResponse

ZORUNLU: Para ekleme yanıtı. Bu kodlanmış değer 1 KB'ı aşmamalıdır.
redirectRequestId string

ZORUNLU: Orijinal/başlayan yönlendirme ödeme isteğinde gönderilen requestId. Google bunun gönderilen requestId ile eşleştiğini doğrular ve tam yönlendirme akışı eşleşmezse tam yönlendirme akışı başarısız olur.

Diğer etkinlik şartları

Yukarıda belirtilen TOPUP_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 kullanıcı verilerini almaya çalışmasını önlemeye yardımcı olur. Bu, Etkinlik uygulamanızda super.onCreate öğesinin hemen ardından sağlanan 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);

  ....
}

Para ekleme 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.