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