पुष्टि, तीन अलग-अलग एनवायरमेंट में हो सकती है:
- पेमेंट इंटिग्रेटर का Android ऐप्लिकेशन
- पेमेंट इंटिग्रेटर की मोबाइल वेबसाइट
- पेमेंट इंटिग्रेटर की डेस्कटॉप वेबसाइट
फ़्लो चाहे जो भी हो, Google, उपयोगकर्ता इंटरैक्शन को पेमेंट इंटिग्रेटर के सॉफ़्टवेयर में भेज देता है. पेमेंट इंटीग्रेटर के पास यह चुनने का विकल्प होता है कि उसे उपयोगकर्ता को कोई इंटरफ़ेस दिखाना है या उसके पास ज़रूरत के मुताबिक डेटा होने पर उसे तुरंत वापस करना है. सभी फ़्लो का नतीजा, इंटिग्रेटर से पुष्टि करने वाला रिस्पॉन्स तैयार करने में होता है. इस जवाब पर हस्ताक्षर करके, Google को वापस भेज दिया गया है.
मोबाइल और डेस्कटॉप वेबसाइटों को Webredirect Authentication API के नियमों का पालन करना होगा, जबकि Android ऐप्लिकेशन फ़्लो को Android पुष्टि करने वाले एपीआई के निर्देशों का पालन करना होगा.
उपयोगकर्ताओं की पुष्टि करने के लिए, इंटिग्रेटर को 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
|
बोनस वीडियो
फ़ील्ड | |
---|---|
gspAuthenticationResponse |
AuthenticationResponse
पुष्टि की गई. कोड में बदली गई यह वैल्यू 1 केबी से ज़्यादा नहीं होनी चाहिए. |
अन्य गतिविधि की शर्तें
ऊपर बताई गई AUTHENTICATE_V1
कार्रवाई के साथ काम करने वाली गतिविधि में, इस बात की भी जांच करनी होगी कि एपीआई के कॉलर सिर्फ़ Google के साइन किए हुए ऐप्लिकेशन से आते हैं.
इससे दूसरे ऐप्लिकेशन को आपकी गतिविधि शुरू करने और पहचान टोकन पाने से रोकने में मदद मिलेगी. यह काम, आपकी
गतिविधि
लागू करने के super.onCreate
के ठीक बाद StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
का इस्तेमाल करके किया जा सकता है.
यहां एक नमूना दिया गया है:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);
....
}
authenticate
फ़्लो में शुरू की गई सभी गतिविधियों से, windowIsTranslucent=true
वाली गतिविधि थीम उपलब्ध होनी चाहिए. Context.setTheme()
का इस्तेमाल किए बिना, AndroidManifest android:theme एट्रिब्यूट का इस्तेमाल करके ऐसा किया जाना चाहिए.
प्रोग्राम के हिसाब से, थीम सेट करने की सुविधा, विंडो पारदर्शिता के लिए ठीक से काम नहीं करती. Google यह लागू करेगा कि लॉन्च की गई पहली गतिविधि इस पैटर्न के हिसाब से हो. हालांकि, लॉन्च की गई सभी सब गतिविधियों को भी इस पैटर्न का पालन करना होगा. अगर ऐसा नहीं है, तो हो सकता है कि तीसरे पक्ष के डेवलपर से की गई खरीदारी काम न करे.