অ্যান্ড্রয়েড APK টপ আপ API

টপ আপ তিনটি ভিন্ন পরিবেশে ঘটতে পারে:

  • পেমেন্ট ইন্টিগ্রেটরের অ্যান্ড্রয়েড অ্যাপ
  • পেমেন্ট ইন্টিগ্রেটরের মোবাইল ওয়েবসাইট
  • পেমেন্ট ইন্টিগ্রেটরের ডেস্কটপ ওয়েবসাইট

প্রবাহ নির্বিশেষে, Google পেমেন্ট ইন্টিগ্রেটরের সফ্টওয়্যার ব্যবহারকারীর ইন্টারঅ্যাকশন বন্ধ করে দেয়। পেমেন্ট ইন্টিগ্রেটর এমন একটি UI প্রয়োগ করে যা ব্যবহারকারীর কাছে পরিচিত বলে মনে হয়, তবে প্রবাহটি অবশ্যই ব্যবহারকারীর ব্যালেন্স টপ আপ করার জন্য বিশেষভাবে উত্সর্গীকৃত হতে হবে, যার অর্থ ব্যবহারকারীকে একটি সাধারণ উদ্দেশ্য UI-তে নামিয়ে দেওয়ার পরিবর্তে একটি টপ আপ প্রক্রিয়ার মাধ্যমে নির্দেশিত করা উচিত যেখানে তারা থাকবে। একটি টপ-আপ ফ্লোতে আরও নেভিগেট করার প্রত্যাশিত৷

সমস্ত প্রবাহের ফলে ইন্টিগ্রেটর একটি TopUpRedirectResponse তৈরি করে। এই প্রতিক্রিয়া স্বাক্ষরিত এবং Google এ ফেরত পাঠানো হয়েছে.

মোবাইল এবং ডেস্কটপ ওয়েবসাইটগুলি অবশ্যই ওয়েব টপ আপ এপিআই স্পেসিফিকেশন অনুসরণ করবে, যখন অ্যান্ড্রয়েড অ্যাপ ফ্লো অবশ্যই অ্যান্ড্রয়েড টপ আপ API স্পেসিফিকেশন অনুসরণ করবে।

ইন্টিগ্রেটরদের উচিত ব্যবহারকারীকে প্রমাণীকরণের জন্য একটি Android APK সমাধান প্রয়োগ করা এবং তারপরে একটি প্রবাহের মাধ্যমে তাদের নির্দেশ দেওয়া উচিত যেখানে তারা তাদের ব্যালেন্স টপ-আপ করতে পারে। এই টপ আপটি একটি ভিন্ন পদ্ধতি, কিন্তু ওয়েব টপ আপ দ্বারা প্রদত্ত টপ আপের একই উদ্দেশ্য।

একজন ব্যবহারকারী একটি Android কার্যকলাপের মাধ্যমে পেমেন্ট ইন্টিগ্রেটর অ্যাপে প্রবাহে প্রবেশ করেন। টপ আপ অভিপ্রায় সরাসরি একটি Play অ্যাপ থেকে আহ্বান করা যেতে পারে যেখানে ব্যবহারকারী একটি কেনাকাটা করতে ইচ্ছুক। টপ আপ চলাকালীন ব্যাকগ্রাউন্ডে 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

প্রয়োজনীয় : টপ-আপ প্রতিক্রিয়া। এই এনকোড করা মান 1KB এর বেশি হওয়া উচিত নয়৷
redirectRequestId string

প্রয়োজনীয় : রিডাইরেক্ট পেমেন্টের অনুরোধের মূল/শুরুতে পাঠানো requestId । Google এটি প্রেরিত requestId সাথে মেলে তা যাচাই করবে, এবং সম্পূর্ণ পুনঃনির্দেশ প্রবাহ ব্যর্থ হবে যদি এটি মেলে না।

অন্যান্য কার্যকলাপ প্রয়োজনীয়তা

উপরে উল্লিখিত TOPUP_V1 অ্যাকশন সমর্থন করে এমন কার্যকলাপটি অবশ্যই পরীক্ষা করতে হবে যে API-এর কলকারীরা শুধুমাত্র Google-স্বাক্ষর করা অ্যাপ্লিকেশনগুলি থেকে আসে৷ এটি অন্যান্য অ্যাপগুলিকে আপনার কার্যকলাপ শুরু করতে এবং ব্যবহারকারীর ডেটা পুনরুদ্ধার করার চেষ্টা করা থেকে আটকাতে সাহায্য করবে৷ আপনার কার্যকলাপ বাস্তবায়নের মধ্যে super.onCreate এর ঠিক পরে সরবরাহ করা StandardPaymentUtils.verifyCallingActivityIsGoogleSigned ব্যবহার করে এটি করা যেতে পারে।

এখানে একটি নমুনা আছে:


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

  ....
}

টপ-আপ প্রবাহের মধ্যে আমন্ত্রিত সমস্ত ক্রিয়াকলাপগুলিকে অবশ্যই একটি কার্যকলাপের থিম সরবরাহ করতে হবে যাতে windowIsTranslucent=true আছে। এটি অবশ্যই AndroidManifest android:theme অ্যাট্রিবিউট দিয়ে করতে হবে এবং Context.setTheme() ব্যবহার না করে। প্রোগ্রামগতভাবে, থিম সেট করা উইন্ডো ট্রান্সলুসেন্সির জন্য সঠিকভাবে কাজ করে না। Google প্রয়োগ করবে যে প্রথম অ্যাক্টিভিটি চালু করা এই প্যাটার্ন অনুসরণ করে কিন্তু যে কোনও সাব অ্যাক্টিভিটিও লঞ্চ করা হয় এই প্যাটার্ন অনুসরণ করতে হবে। তা না হলে, তৃতীয় পক্ষের বিকাশকারীদের থেকে কেনাকাটা কাজ নাও করতে পারে।