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

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

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

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

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

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

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

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

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

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

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

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

الطلب

الحقول
gspTopUpRequest TopUpRedirectRequest

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

gspAssociationId string

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

الرد

بعد أن يكمل المستخدم تدفق الرصيد، يحتاج تطبيقك إلى إرسال نية الشراء إلى 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 أنّ النشاط الأول الذي يتم إطلاقه يتبع هذا الإجراء. غير أن أي أنشطة فرعية يتم إطلاقها يجب أن تتبع أيضًا النمط. إذا لم يتم إجراء ذلك، قد لا تنجح عمليات الشراء التي يجريها مطوّرو البرامج التابعون لجهات خارجية.