واجهة برمجة التطبيقات لإضافة APK في Android

ويمكن أن تتم عملية إضافة الرصيد في ثلاث بيئات مختلفة:

  • تطبيق Android الخاص بشركة تكامل الدفع
  • الموقع الإلكتروني المتوافق مع الأجهزة الجوّالة لشركة تكامل الدفع
  • الموقع الإلكتروني المتوافق مع أجهزة الكمبيوتر المكتبي لشركة تكامل الدفع

وبغض النظر عن المسار، تُسلِّم Google تفاعل المستخدم إلى برنامج عملية دمج الدفعات. تنفذ وحدة تكامل الدفع واجهة مستخدم تبدو مألوفة للمستخدم، ولكن يجب أن يكون التدفق مخصصًا بشكل خاص لإضافة رصيد المستخدم، مما يعني أنه يجب توجيه المستخدم من خلال عملية إضافة رصيد بدلاً من وضعه في واجهة مستخدم للأغراض العامة حيث يُتوقع منه الانتقال إلى المزيد من تدفق الإضافة.

تؤدي جميع المسارات إلى أن تقدّم الشركة المتعهّدة الاستجابة TopUpRedirectResponse. تم توقيع هذا الرد وإرساله إلى Google.

يجب أن تتّبع المواقع الإلكترونية المتوافقة مع الأجهزة الجوّالة وأجهزة الكمبيوتر المكتبي مواصفات Web Top Up API، بينما يجب أن يتّبع مسار تطبيق Android مواصفات واجهة برمجة التطبيقات Android Top Up API.

على الشركات المتعهّدة تنفيذ حلّ Android APK لمصادقة المستخدمين، ثم توجيههم إلى الخطوات التي يجب اتّباعها لإضافة رصيد. تجدر الإشارة إلى أنّ عملية إضافة الرصيد هذه مختلفة عن طريقة الدفع، ولكنها تستخدم ميزة إضافة رصيد الويب نفسها.

يُدخل المستخدم الخطوات في تطبيق دمج الدفعات من خلال نشاط Android. يمكن استدعاء هدف إضافة الرصيد مباشرةً من أحد تطبيقات Play حيث ينوي المستخدم إجراء عملية شراء. لمنع Android من إنهاء العمل في الخلفية أثناء إضافة اللعبة، على الشركة التي تُجري عملية الدمج تضمين ما يلي في موضوع النشاط.

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

تعريف الطريقة

يجب أن يتضمن الغرض السمات التالية:

خصائص الطريقة
الإجراء com.google.android.payments.standard.TOPUP_V1
الفئة android.intent.category.DEFAULT

الطلب

الحقول
gspTopUpRequest TopUpRedirectRequest

طلب إضافة رصيد.

gspAssociationId string

تحتوي على معرّف تستخدمه جهة الدمج للبحث عن بيانات الاعتماد الخاصة بالحساب الذي يضيفه المستخدم. هذا هو رقم تعريف الربط الذي يتم إرساله أثناء ربط الحساب في AssociateAccountRequest.

الإجابة

بعد أن يكمل المستخدم عملية إضافة الرصيد، يحتاج التطبيق إلى إرسال هدف النتيجة إلى Google. إذا نجحت عملية إضافة الرصيد، أنشئ هدفًا وأضِف gspTopUpResponse وredirectRequestId المشفّرَين كعناصر إضافية. بعد ذلك، قم بتعيين نتيجة النشاط على رمز النتيجة المناسبة.

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

النتيجة

الحقول
نتيجة int

Activity.RESULT_OK
تمت إضافة رصيد بنجاح.
Activity.RESULT_CANCELED ألغى المستخدم المسار يدويًا ويجب إلغاء هذا التدفق.
Activity.RESULT_FIRST_USER تعذّر إتمام عملية إضافة الرصيد لسبب خطير، وبالتالي يجب إلغاء عملية إضافة الرصيد. عرض خادم IE استجابة HTTP 500 عند تسجيل الدخول.

محتوى إضافي

الحقول
gspTopUpResponse TopUpRedirectResponse

مطلوب: إضافة ردّ الأموال. يجب ألا يتجاوز حجم هذه القيمة المشفرة 1 كيلوبايت.
redirectRequestId string

مطلوب: مبلغ requestId الذي تم إرساله في طلب الدفع الأصلي/الذي يتم إعادة التوجيه إليه. ستتحقّق Google من تطابق هذه العملية مع requestId المُرسَلة، وستتعذّر إكمال عملية إعادة التوجيه في حال عدم التطابق.

متطلبات النشاط الأخرى

يجب أيضًا أن يتحقّق النشاط الذي يتوافق مع إجراء TOPUP_V1 المذكور أعلاه من أنّ مستخدمي واجهة برمجة التطبيقات مصدرهم تطبيقات موقَّعة من Google فقط. سيساعد ذلك في منع التطبيقات الأخرى من محاولة استدعاء نشاطك واسترداد بيانات المستخدم. يمكن إجراء ذلك باستخدام عنصر StandardPaymentUtils.verifyCallingActivityIsGoogleSigned المقدَّم بعد super.onCreate مباشرةً ضمن عملية تنفيذ النشاط.

في ما يلي عينة:


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

  ....
}

يجب أن توفّر جميع الأنشطة التي تم استدعاؤها ضمن عملية إضافة الرصيد موضوع نشاط يحتوي على windowIsTranslucent=true. ويجب إجراء ذلك باستخدام سمة AndroidManifest android:theme وليس باستخدام Context.setTheme(). وبشكل آلي، لا يعمل ضبط المظهر بشكل صحيح مع شفافية النوافذ. ستفرض Google أن النشاط الأول الذي تم إطلاقه يتبع هذا النمط ولكن أي أنشطة فرعية يتم إطلاقها أيضًا يجب أن تتبع هذا النمط أيضًا. إذا لم يكن الأمر كذلك، قد لا تنجح عمليات الشراء من مطوّرين تابعين لجهات خارجية.