يمكن أن تتم المصادقة في ثلاث بيئات مختلفة:
- تطبيق Android الخاص بشركة تكامل الدفع
- الموقع الإلكتروني المتوافق مع الأجهزة الجوّالة لشركة تكامل الدفع
- الموقع الإلكتروني المتوافق مع أجهزة الكمبيوتر المكتبي لشركة تكامل الدفع
وبغض النظر عن المسار، تُسلِّم Google تفاعل المستخدم إلى برنامج عملية دمج الدفعات. يمكن لشركة تكامل الدفع اختيار عرض واجهة للمستخدم أو العودة ببساطة على الفور إذا كانت لديها البيانات المناسبة. تؤدي جميع العمليات إلى أن توفّر عملية الدمج استجابة للمصادقة. تم التوقيع على هذا الرد وإرساله إلى Google.
يجب أن تتّبع المواقع الإلكترونية المتوافقة مع الأجهزة الجوّالة وأجهزة الكمبيوتر المكتبي مواصفات واجهة برمجة التطبيقات WebRedirect API ، بينما يجب أن يتّبع مسار تطبيق Android مواصفات واجهة برمجة تطبيقات المصادقة Android.
على الشركات المتعهّدة تنفيذ حل APK لنظام التشغيل Android لمصادقة المستخدمين. وتُعدّ هذه المصادقة طريقة مختلفة، ولكنها تمثل الغرض نفسه من المصادقة المُقدَّمة من خلال مصادقة الويب.
يقوم المستخدم بالمصادقة مع الجهة المسؤولة عن دمج عمليات الدفع من خلال نشاط Android. يتم استدعاء الغرض من المصادقة أثناء ربط الحساب ولتحديات المستخدم. لمنع Android من إنهاء العمل في الخلفية أثناء المصادقة، على الشركة التي تُجري عملية الدمج تضمين ما يلي في موضوع النشاط.
<item name="android:windowIsTranslucent">true</item>
تعريف الطريقة
يجب أن يتضمن الغرض السمات التالية:
خصائص الطريقة | |
---|---|
الإجراء |
com.google.android.payments.standard.AUTHENTICATE_V1 |
الفئة | android.intent.category.DEFAULT |
الطلب
الحقول | |
---|---|
gspAuthenticationRequest
|
AuthenticationRequest
طلب مصادقة. |
gspAssociationId
|
string
وعند توفّر هذه السمة، تحتوي على معرّف تستخدمه جهة الدمج للبحث عن بيانات الاعتماد الخاصة بالمستخدم المطلوب إجراء عملية الدمج. في حال عدم توفّر هذه السمة، يمكن للمستخدم تغيير تعريف الحساب. |
الإجابة
بعد أن يُكمل المستخدم المصادقة، يحتاج تطبيقك إلى إرسال نتيجة النتيجة إلى Google. إذا نجحت المصادقة، أنشئ هدفًا وأضِف رمز gspAuthResponse المشفّر كإجراء إضافي. بعد ذلك، اضبط نتيجة النشاط على رمز النتيجة المناسب.
...
result.setExtra("gspAuthenticationResponse", gspAuthenticationResponse);
setResult(Activity.RESULT_OK, result);
...
finish();
النتيجة
الحقول | |||||||
---|---|---|---|---|---|---|---|
نتيجة |
int
|
محتوى إضافي
الحقول | |
---|---|
gspAuthenticationResponse |
AuthenticationResponse
استجابة المصادقة. يجب ألا يتجاوز حجم هذه القيمة المشفرة 1 كيلوبايت. |
متطلبات النشاط الأخرى
يجب أيضًا أن يتحقّق النشاط الذي يتوافق مع إجراء AUTHENTICATE_V1
المذكور أعلاه
من أنّ مستخدمي واجهة برمجة التطبيقات مصدرهم تطبيقات موقَّعة من Google فقط.
سيساعد هذا الإجراء في منع التطبيقات الأخرى من محاولة استدعاء نشاطك واسترداد رموز الهوية. ويمكن إجراء ذلك باستخدام العنصر المُقدَّم
StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
بعد super.onCreate
مباشرةً ضمن عملية تنفيذ
النشاط.
في ما يلي عينة:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);
....
}
يجب أن توفر جميع الأنشطة التي تم استدعاؤها ضمن تدفق authenticate
مظهر نشاط
يحتوي على windowIsTranslucent=true
. ويجب إجراء ذلك باستخدام
سمة AndroidManifest android:theme وليس باستخدام Context.setTheme()
.
وبشكل آلي، لا يعمل ضبط المظهر بشكل صحيح مع شفافية النوافذ. ستفرض Google أن النشاط الأول الذي تم إطلاقه يتبع هذا النمط ولكن أي أنشطة فرعية يتم إطلاقها أيضًا يجب أن تتبع هذا النمط أيضًا. إذا لم يكن الأمر كذلك، قد لا تنجح عمليات الشراء من مطوّرين تابعين لجهات خارجية.