প্রমাণীকরণ তিনটি ভিন্ন পরিবেশে ঘটতে পারে:
- পেমেন্ট ইন্টিগ্রেটরের অ্যান্ড্রয়েড অ্যাপ
- পেমেন্ট ইন্টিগ্রেটরের মোবাইল ওয়েবসাইট
- পেমেন্ট ইন্টিগ্রেটরের ডেস্কটপ ওয়েবসাইট
প্রবাহ নির্বিশেষে, Google পেমেন্ট ইন্টিগ্রেটরের সফ্টওয়্যার ব্যবহারকারীর ইন্টারঅ্যাকশন বন্ধ করে দেয়। পেমেন্ট ইন্টিগ্রেটর ব্যবহারকারীকে একটি ইন্টারফেস দেখানোর জন্য বেছে নিতে পারে অথবা যদি তার কাছে ইতিমধ্যে উপযুক্ত ডেটা থাকে তাহলে তা অবিলম্বে ফিরে আসতে পারে। সমস্ত প্রবাহের ফলে ইন্টিগ্রেটর একটি প্রমাণীকরণ প্রতিক্রিয়া তৈরি করে। এই প্রতিক্রিয়া স্বাক্ষরিত এবং Google এ ফেরত পাঠানো হয়েছে.
মোবাইল এবং ডেস্কটপ ওয়েবসাইটগুলি অবশ্যই WebRedirect প্রমাণীকরণ API স্পেসিফিকেশন অনুসরণ করবে, যখন Android App ফ্লো অবশ্যই Android প্রমাণীকরণ API স্পেসিফিকেশন অনুসরণ করবে।
ইন্টিগ্রেটরদের উচিত ব্যবহারকারীদের প্রমাণীকরণের জন্য একটি Android APK সমাধান প্রয়োগ করা। এই প্রমাণীকরণ একটি ভিন্ন পদ্ধতি, কিন্তু ওয়েব প্রমাণীকরণ দ্বারা প্রদত্ত প্রমাণীকরণের মতো একই উদ্দেশ্য।
একজন ব্যবহারকারী একটি Android কার্যকলাপের মাধ্যমে পেমেন্ট ইন্টিগ্রেটরের সাথে প্রমাণীকরণ করে। অ্যাকাউন্ট অ্যাসোসিয়েশনের সময় এবং ব্যবহারকারী-চ্যালেঞ্জের জন্য প্রমাণীকরণ অভিপ্রায় আহ্বান করা হয়। প্রমাণীকরণের সময় Android-কে ব্যাকগ্রাউন্ডে Play বন্ধ করা থেকে আটকাতে, ইন্টিগ্রেটরকে অ্যাক্টিভিটি থিমে নিম্নলিখিতগুলি অন্তর্ভুক্ত করতে হবে।
<item name="android:windowIsTranslucent">true</item>
পদ্ধতির সংজ্ঞা
উদ্দেশ্য এই বৈশিষ্ট্য থাকা প্রয়োজন:
পদ্ধতির বৈশিষ্ট্য | |
---|---|
কর্ম | com.google.android.payments.standard.AUTHENTICATE_V1 |
শ্রেণী | android.intent.category.DEFAULT |
অনুরোধ
ক্ষেত্র | |
---|---|
gspAuthenticationRequest | AuthenticationRequest প্রমাণীকরণ অনুরোধ। |
gspAssociationId | string যদি উপস্থিত থাকে, এতে একটি শনাক্তকারী রয়েছে যা ইন্টিগ্রেটর চ্যালেঞ্জ করা ব্যবহারকারীর জন্য শংসাপত্রগুলি সন্ধান করতে ব্যবহার করে। এটি উপস্থিত না থাকলে, ব্যবহারকারীর অ্যাকাউন্ট সনাক্তকরণ পরিবর্তন করার বিকল্প রয়েছে। |
প্রতিক্রিয়া
ব্যবহারকারী প্রমাণীকরণ সম্পূর্ণ করার পরে, আপনার অ্যাপ্লিকেশনটিকে Google-এ একটি ফলাফলের উদ্দেশ্য ফেরত পাঠাতে হবে। প্রমাণীকরণ সফল হলে, একটি অভিপ্রায় তৈরি করুন এবং অতিরিক্ত হিসাবে এনক্রিপ্ট করা এনকোড করা gspAuthenticationResponse যোগ করুন। এরপরে, কার্যকলাপের ফলাফলটিকে উপযুক্ত ফলাফল কোডে সেট করুন।
...
result.setExtra("gspAuthenticationResponse", gspAuthenticationResponse);
setResult(Activity.RESULT_OK, result);
...
finish();
ফলাফল
ক্ষেত্র | |||||||
---|---|---|---|---|---|---|---|
ফলাফল | int
|
অতিরিক্ত
ক্ষেত্র | |
---|---|
gsp প্রমাণীকরণ প্রতিক্রিয়া | AuthenticationResponse প্রমাণীকরণ প্রতিক্রিয়া। এই এনকোড করা মান 1KB এর বেশি হওয়া উচিত নয়৷ |
অন্যান্য কার্যকলাপ প্রয়োজনীয়তা
যে কার্যকলাপটি উপরে উল্লিখিত AUTHENTICATE_V1
অ্যাকশনকে সমর্থন করে তা অবশ্যই পরীক্ষা করতে হবে যে API-এর কলকারীরা শুধুমাত্র Google-স্বাক্ষর করা অ্যাপ্লিকেশন থেকে এসেছে। এটি অন্যান্য অ্যাপগুলিকে আপনার ক্রিয়াকলাপ শুরু করতে এবং পরিচয় টোকেনগুলি পুনরুদ্ধার করার চেষ্টা করা থেকে বিরত রাখতে সহায়তা করবে৷ আপনার কার্যকলাপ বাস্তবায়নের মধ্যে super.onCreate
ঠিক পরে সরবরাহ করা StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
ব্যবহার করে এটি করা যেতে পারে।
এখানে একটি নমুনা:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);
....
}
authenticate
প্রবাহের মধ্যে আহ্বান করা সমস্ত ক্রিয়াকলাপ অবশ্যই একটি কার্যকলাপের থিম সরবরাহ করবে যাতে windowIsTranslucent=true
আছে। এটি অবশ্যই AndroidManifest android:theme অ্যাট্রিবিউট দিয়ে করতে হবে এবং Context.setTheme()
ব্যবহার না করে। প্রোগ্রামগতভাবে, থিম সেট করা উইন্ডো ট্রান্সলুসেন্সির জন্য সঠিকভাবে কাজ করে না। Google প্রয়োগ করবে যে প্রথম অ্যাক্টিভিটি চালু করা এই প্যাটার্ন অনুসরণ করে কিন্তু যে কোনও সাব অ্যাক্টিভিটিও লঞ্চ করা হয় এই প্যাটার্ন অনুসরণ করতে হবে। তা না হলে, তৃতীয় পক্ষের বিকাশকারীদের থেকে কেনাকাটা কাজ নাও করতে পারে।