האימות יכול להתבצע בשלוש סביבות שונות:
- האפליקציה ל-Android של כלי לשילוב תשלומים
- האתר לנייד של הכלי לשילוב תשלומים
- האתר למחשב של משלב תשלומים
בלי קשר לתהליך העבודה, Google מעבירה את האינטראקציה של המשתמש לתשלום של כלי השילוב. משלב התשלומים יכול לבחור להציג למשתמש או פשוט לחזור מיד אם כבר יש לו את הנתונים המתאימים. כל הזרימה גורמת לכך שהמטמיע ייצור AuthenticationResponse. הזה התגובה נחתמת ומועברת חזרה אל Google.
באתרים לנייד ולמחשב צריך להשתמש ב-WebRedirect Authentication API מפרט, ואילו זרימת האפליקציה ל-Android חייבת להיות תואמת ל-Android. מפרט API לאימות.
מבצעי שילוב צריכים להטמיע פתרון APK ל-Android כדי לאמת את המשתמשים. האימות הזה שונה בשיטה אחרת, אבל זו המטרה של האימות שמסופק על ידי האינטרנט אימות.
המשתמש מבצע אימות אצל הכלי לשילוב תשלומים באמצעות Android פעילות. כוונת האימות מופעלת במהלך שיוך החשבון ול האתגרים של המשתמש. כדי למנוע מ-Android לסגור את Play ב- ברקע במהלך האימות, מבצע השילוב צריך לכלול את בנושא הפעילות.
<item name="android:windowIsTranslucent">true</item>
הגדרת השיטה
ל-Intent צריכים להיות המאפיינים הבאים:
מאפייני השיטה | |
---|---|
פעולה |
com.google.android.payments.standard.AUTHENTICATE_V1 |
קטגוריה | android.intent.category.DEFAULT |
בקשה
שדות | |
---|---|
gspAuthenticationRequest
|
AuthenticationRequest
בקשת אימות. |
gspAssociationId
|
string
אם הוא קיים, הוא מכיל מזהה שמשמש את מבצע השילוב כדי לחפש את פרטי הכניסה של המשתמש שנתקלים בו. אם הוא לא נמצא, המשתמש יכול לשנות את זיהוי החשבון. |
תשובה
לאחר שהמשתמש ישלים את האימות, האפליקציה צריכה לשלוח תוצאה את הכוונה שלנו בחזרה ל-Google. אם האימות מצליח, יוצרים Intent ומוסיפים את gspAuthenticationResponse המוצפן המקודד כתוספת. לאחר מכן, מגדירים את תוצאת הפעילות לקוד התוצאה המתאים.
...
result.setExtra("gspAuthenticationResponse", gspAuthenticationResponse);
setResult(Activity.RESULT_OK, result);
...
finish();
תוצאה
שדות | |||||||
---|---|---|---|---|---|---|---|
תוצאה |
int
|
תוספות
שדות | |
---|---|
gspAuthenticationResponse |
AuthenticationResponse
תגובת אימות. הערך המקודד הזה לא יכול לחרוג מ-1KB. |
דרישות אחרות לגבי פעילות
הפעילות שתומכת בפעולה AUTHENTICATE_V1
שצוינה למעלה חייבת
כמו כן, לבדוק שהקוראים של ה-API מגיעים רק מאפליקציות שחתומות על ידי Google.
כך תמנע מאפליקציות אחרות לנסות להפעיל את הפעילות שלך
לאחזר אסימוני זהות. כדי לעשות זאת אפשר להשתמש
StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
מיד אחרי super.onCreate
תוך
פעילות
יישום בפועל.
לדוגמה:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);
....
}
כל הפעילויות שמופעלות בתהליך של authenticate
חייבות לכלול פעילות
עיצוב עם windowIsTranslucent=true
. צריך לעשות זאת עם
AndroidManifest android:theme מאפיין ולא נעשה בו שימוש ב-Context.setTheme()
.
מבחינה פרוגרמטית, הגדרת העיצוב לא פועלת כמו שצריך בחלון
שקופה. Google תאכוף את הפעילות הראשונה שתושק לפי
אבל כל פעילויות המשנה שיופעלו גם הן חייבות לפעול לפי
דפוס. אחרת, יכול להיות שרכישות ממפתחים מצד שלישי לא יפעלו.