ב-Android יש תמיכה באמולציה של כרטיסי NFC עם רכיב מאובטח להדמיית כרטיסים שלא מופיעים כמארחים. (מידע נוסף זמין במאמר סקירה כללית על אמולציה של כרטיסים מבוססי מארח). עם זאת, בפלטפורמת Android, שירות התשלומים המועדף שצוין בהגדרה 'הקש ושלם' לא תמיד מסתנכרן עם האפליקציה ברכיב המאובטח. כלומר, יכול להיות שברכיב המאובטח נעשה שימוש בשירות תשלומים שאינו מועדף במקום בשירות התשלומים המועדף.
ב-Android 11, התכונה סנכרון תשלומים מחוץ למארח מספקת מנגנון שמאפשר לסנכרן את הגדרות התשלום ב'הקשה לתשלום', את הגדרות הניתוב בחזית ללא מגע (CLF) ואת המצב שנבחר על ידי האפליקציה ברכיב המאובטח.
התרשים הבא מציג את הארכיטקטורה של תכונת סנכרון התשלומים מחוץ למארח.
הטמעה
כדי להטמיע את התכונה 'סנכרון תשלומים מחוץ למארח', המכשיר צריך לכלול בקר NFC שתומך בתקן NCI 2.0, ולהשתמש במסגרות של Android Open Source Project NFC ו-Open Mobile Application Programming Interface (OMAPI).
ממשקי API של Framework
כדי להטמיע סנכרון של תשלומים מחוץ למארח, צריך להשתמש בממשקי ה-API הבאים של framework שנמצאים בפרויקט קוד פתוח של Android:
getAidsForPreferredPaymentService()
: אחזור של מזהי AID הרשומים של שירות התשלומים המועדף.getRouteDestinationForPreferredPaymentService()
: אחזור היעד של המסלול לשירות התשלום המועדף.getDescriptionForPreferredPaymentService()
: הפונקציה מחזירה תיאור גלוי למשתמש של שירות התשלומים המועדף.android.permission.NFC_PREFERRED_PAYMENT_INFO
(הרשאה): מאפשרת לאפליקציות לקבל פרטים על שירות התשלומים המועדף באמצעות NFC.android.nfc.action.PREFERRED_PAYMENT_CHANGED
(פעולת שידור): כוונה להודיע אם שירות התשלום המועדף השתנה.
אימות
כדי לאמת את ההטמעה של תכונת הסנכרון של תשלומים מחוץ למארח, צריך להתקין אפליקציות של רכיבים מאובטחים עם רכיבים מאובטחים תואמים, ואז לבדוק אם יש תגובות מתאימות ממכשיר קריאת NFC בתנאים שונים.