Table of Contents

מהו API PassKit?

מסגרת PassKit של Apple היא מערכת מקיפה של כלים ושירותים המאפשרים למפתחי iOS ליצור, להפיץ, לנהל את המעבר הדיגיטלי עבור Apple Wallet. A Pass יכול להיות כרטיס מסך, כרטיס אירוע, כרטיס נאמנות, כרטיס מתנה, קופונים, או כל סוג אחר של מטלה כי היתרונות מלהיות מאוחסן בבטחה על מכשיר של משתמשי ה- PassKit מטפל בכל דבר מעבור וחתומה על ידי חברות תעופה אמיתיות, כדי להפוך לעדכונים על ידי לחיצה על לוח זמנים סטנדרטיים, ועדכונים על ידי לוח זמנים, ועדכונים על ידי ה- API, ועדכונים סטנדרטיים, כדי להפוך לעדכונים של לוח זמנים סטנדרטיים, כדי להפוך לעדכונים של לוח זמנים סטנדרטיים, לעדכונים על ידי Skype.

כל מעבר ארוז כקובץ FLT:0 (קובץ חתום ZIP המכיל נתונים, תמונות וקווי ההשיזציה של JSON. כאשר משתמש פותח קובץ זה (באמצעות קישור, דוא"ל או להורדה), iOS מאמת את החתימה ומציג את המעבר בוולאט. מאותו רגע, את החיים על המכשיר, ניתן לעדכן על האוויר, ואפילו עובד כאשר מידע לא מקוון כמו קודים קריטיים או QR.

כיצד פועל API PassKit

מעבר למבנה הקבצים

(ב) ב[[1924]], [[1924]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]], [[1924]]]]]]]]]]]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]], [[1924]], [[1924]], [[1924]], [[1924]], [[1924]]]]]]]], [[1924]], [[1924]], [[1924]], [[1924]]]], [[1924]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]]]]]]]]]]]]]],

Signing and Distribution

אפל דורשת שכל המעברים חתומה באופן קריפטוגרפי באמצעות תעודה מגובשת של מפתח (התקבלה דרך פורטל Apple Developer Portal) החתימה מאמת את האותנטיות והשלמות של העובר.פעם חתום, ניתן להתארח על שרת ולהפצה באמצעות כתובת URL אשר מפעילה את ההתקנה של Wallet. לחלופין, ניתן לשלוח את העובר כקבצים מצורפים דואר אלקטרוני, מוטבע בקודי QR, או לדחוף ישירות מהאפליקציית שלך באמצעות ה-FLT 10/מודרני: 10.

עדכון בזמן אמת באמצעות Push

אחת התכונות החזקות ביותר של PassKit היא היכולת לעדכן עובר לאחר קידוד.כאשר טיסה משנה שערי או כרטיס משודרגת, השרת יכול לשלוח הודעה שקטה דחיפה למכשיר של המשתמש.המכשיר מביא קובץ חדש (FLT:11) מכתובת השירות הרשומים בשירות האינטרנט.העבר בוולאט מוחלף באופן חלקה, והמשתמש רואה את המידע המעודכנים מיד.

זרימת העדכון של דחיפה דורשת שירות אינטרנט שמשתף פעולה עם מפרט Apple: השירות חייב לחשוף נקודות קצה עבור מקבל את המעבר האחרון, מספרים סידוריים, ורישום המכשיר מרחוק.זה בדרך כלל מיושם על גבי הגב שלך באמצעות Node.js, PHP, Python, או כל ערימה שיכולה להתמודד עם בקשות HTTP.

היתרונות העיקריים של ניהול כרטיס ו-Switching Pass

נוחות המשתמש וצמצום הפיצול

הובלת כרטיס או כרטיס ב-Apple Wallet מבטלת את הצורך להעמיס עבור גרסת נייר או לשמור אפליקציה צד שלישי פתוח. Passes נגישים מסך המנעול (באמצעות גיאוגרפיה, הודעה מבוססת זמן, או ערכת ידני) וניתן לסרוק במהירות בשערים, נתבים או נקודות כניסה.

מידע אמין, תמיד-Available Data

לאחר שחלף מוזנח, תמונת הברקוד ומידע מפתח מאוחסנים מקומית.גם אם המכשיר מאבד קישוריות סלולרית, המעבר נשאר סרוקן.זה קריטי בשדות תעופה, אצטדיוןים, ומרכזי מעבר שבהם כיסוי רשת יכול להיות מקום.העבר מופיע גם על מסך נעילה כאשר התאריך / השעה הרלוונטית מתקרב, הודות לאינטליגנציה של אפל.

עדכון דינמי ללא פעילות משתמשים

עם עדכונים מבוססי הודעות דחיפה, כל שינוי לתוכן המעבר יכול להיות משתקף מיד.עבור עיכוב טיסה, זמן היציאה המשוער בעדכונים מעבר; עבור פסטיבל, שינוי שלב מופיע בכרטיס.משתמשים לא צריכים לרענן או להוריד כל דבר באופן ידני.זה מקטין את בקשות התמיכה ולשפר את החוויה הכוללת.

אבטחה מוגברת ואנטי-פלוד

חולות Apple Wallet חתומות עם תעודת מפתח, כך שניתן לשלב את PassKit עם בדיקות בצד השרת - לדוגמה, מעברים יכולים לכלול מספר סידורי ייחודי שניתן לאמת את השרת בצד.עבור אירועים בעלי ערך גבוה, באפשרותך לשלב את PassKit עם בדיקות בצד השרת - לדוגמה, תוך אימות מעבר מרחוק אם הוא מוחזר, ולאחר מכן דוחף גרסה מעודכנת עם "מצב ריק" ברקוד יכול גם להיות מקודמת מחדש, אם זה הוא לעתים קרובות יותר, אם הוא מסוגל למנוע שימוש מחדש על ידי מערכת דינמית יותר.

לעבור יצירה ועיצוב

Defining Pass Fields

תוכן עובר מחולק לקבוצות לוגיות: שדות ראשיים (למשל, "Boarding Pass"), שדות ראשוניים (למשל, "Gate A12"), שדות משניים (למשל, "Seat 23A"), שדות עזר (למשל, "Frequent Flyer Number") ושדות אחוריים (Trans, ו-"תנאים"כל שדה" יש ערך, 12 מעלות, כמו למשל, לסגנון חזותי, לסגנון אופציונלי, ל-TK) ולעמוד על גבי שדה, לסגנון אופציונלי, לסגנון אופציונלי, לסגנון אופציונלי, לסגנון אופציונלי, או ל-TKTKTKTKTe, לדוגמה, לדוגמה, לדוגמה, ל-Te, ל-Te, ל-Te, ל-Te, השפעה על פני מספר אופציונלי, לדוגמה, ל-Te-Te, ל-Te, ל-Tepe, ל-Te, ו-Te-Te.Te.Te, ל-Te-Te.Te, ל-Te.Te, לדוגמה, ל-Te.Te, ל-Te.Te.Te.Te.Te,

קודים וקודי QR

כל מעבר חייב לכלול לפחות אובייקט ברקוד אחד, אתה יכול להשתמש ב-FLT:13, (FLT:14, FLT:15, או FLT:16 (השניים האחרונים להיות נפוץ עבור חברת תעופה) הערך הברקוד - באופן חד פעמי מספר הכרטיס או קוד אישור - מקודד בתמונה בעת המעבר.

הנחיות עיצוב חזותי

אפל מספקת הנחיות עיצוב חזקות כדי להבטיח שעוברים נראים עקביים על מכשירים.הלוג צריך להיות פשוט וממוקד, הרקע צריך להשלים את הברקוד, ותמונות פס (אופציונלי) יכול להוסיף משטחים של המותג.אתה צריך לספק תמונות במגוון החלטות (1x, 2x, 3x) עבור כל המסכים.עם עלייה של אייפון גדולים יותר, לעבור את הפריסה להתאים באופן אוטומטי, אבל בדיקות זהירות על המסך הוא חיוני הוא גדלים.

לדוגמה מעשית של מעבר מובנה כראוי JSON, ראה את הרשמי של אפל (FLT:0 יצירת מסמך PassreaFLT:1).

המונחים

ניתן למקם את המעברים באמצעות צוללות ספציפיות בשפה (למשל, FLT:17,FLT 18) בתוך חבילת FLT:19.ה-FLT:20 יכול להתייחס לחוטים מקומיים אלה עבור תוויות שדה וערכים.זה חשוב במיוחד לחברות תעופה בינלאומיות ומארגני אירועים גלובליים שרוצים להציג מידע בשפה המועדפת של המשתמש.

ניכוי מעברים למשתמשים

תגית: Direct Addition

אם האפליקציה שלך היא נקודת המגע העיקרית, תוכל להוסיף באופן יזום מעבר לוולקט באמצעות (FLT:21 (iOS 6+) או יותר מודרני FLT:22 (iOS 12+) קובץ המעבר חייב להיות הורד תחילה מהשרת שלך (כמו NSData) ולאחר מכן הציג למשתמש.

דואר אלקטרוני ו- Web Distribution

עבור משתמשים שאינם מחזיקים את האפליקציה שלך מותקנת (או מעדיפים לא להשתמש בה לצורך ניהול מעבר), באפשרותך לשלוח קישור לקובץ ®FLT:24 או להציב קישור להורדה ישירה באתר.כאשר המשתמש מקל על הקישור במכשיר iOS, Safari פותח באופן אוטומטי Wallet ו-Resrexis כדי להוסיף את המעבר.You יכול גם להשתמש קישורים יוניברסל כדי לשפר את החוויה.

קוד QR או Barcode Scanning

דפוס נפוץ נוסף הוא להטביע כתובת URL מצביעה על קובץ ה- QR קוד. כאשר הוא לסרוק עם אפליקציית המצלמה, iOS מציג דגל Wallet בראש המסך. Tapping זה מוסיף את המעבר.זה אידיאלי עבור כרטיס הליכה במשרדי תיבת אירועים או קיוסקים בשירות עצמי בשדה התעופה.

« « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « «

אדריכלות מבוססת Push- Based Update

כדי לאפשר עדכונים אוטומטיים, עליך ליישם שירות אינטרנט פשוט כי Apple Wallet יכול להתקשר.השירות חייב לחשוף שלושה נקודות קצה:

  1. (ב) ,0) קבלו את הגרסה האחרונה של מעבר ל-1 (נקראת על ידי Wallet כאשר היא מקבלת הודעה).
  2. (ב) ,0) קבל מספר סידורי עבור מכשיר 1 (הנקרא במהלך הרישום הראשוני וגילוי שינויים).
  3. (ב) ,0) , ⁇ (המכונה: ⁇ ) ⁇ (ב) ).

כאשר עובר צריך לעדכן, השרת שולח הודעה דחיפה (באמצעות APN) למכשירים הרשומים.המכשיר שאילתות את שירות האינטרנט עבור קובץ חדש FLT:26.אם הגרסה החולפת השתנתה, Wallet מוריד ומחליף את המעבר הישן באופן שקט.

מתי להשתמש בעדכונים

מקרים נפוצים כוללים:

  • שער הטיסה משתנה, עיכובים או ביטולים
  • אירועים חוזרים או שינויים
  • שדרוגים או הורדת
  • אימות כרטיס (למשל, סריקה בסימנים לכרטיסים כפי שנעשה שימוש)
  • עדכוני אבטחה (למשל החלפת ברקוד לאחר ניסיון סריקה)

שימו לב שכל מעבר יכול רק לעדכן באמצעות אותו תעודה המשמשת לחתימה במקור.You לא יכול לשנות את סוג המעבר או את מזהה הארגון לאחר קידוד.

הפרקטיקה הטובה ביותר ליישום

אבטחה ואמון

  • שמור על תעודת החתימה שלך ואת המפתח הפרטי בסביבת השרת הבטוחה, לעולם לא בקוד בצד הלקוח.
  • אימות כל בקשות לרישום דחיפה הנכנסות למניעת הזרקת אסימונים.
  • השתמש ב- HTTPS עבור כל האינטראקציות בין השרת ל-Apple Wallet.
  • שקול באמצעות קודים חד פעמיים או תעודות זהות קצרות מועד לאירועים של אבטחה גבוהה.
  • הגבלת שיעור הפחתת נקודות קצה של שירות האינטרנט שלך.

חווית המשתמש

  • הצג את האפשרות "Add to Wallet" ברגע הרלוונטי ביותר - לאחר אישור רכישה, לאחר בדיקה, או בתחילת יום אירוע.
  • השתמש בסגנון ברור, גבוה-contrast עבור barcodes ולהבטיח שהם עומדים בדרישות גודל מינימלי (לפחות 2 אינץ 'רחבה המקבילות הדפסה).
  • שמור על המעבר פשוט: להימנע מעומס עם שדות מיותרים. תצוגת מסך מנעול צריך להראות את שלושת החלקים הקריטיים ביותר של מידע.
  • בדיקות עוברות על מכשירים אמיתיים עם גרסאות שונות של iOS.exe יכול להפוך את העוברים, אבל אתה לא יכול לבדוק עדכונים או סריקה בפועל שם.

שילוב Backend

שירות המעבר שלך צריך להיות idempotent ו-Cropable. השתמש מסד נתונים כדי למפות את מספר סידורי עובר של כל משתמש לאירוע שלהם או הזמנת טיסה.אחסן את אסימוני המכשיר עבור עדכונים.קבוצות רבות מנף ספריות כמו FLT:0Swift-ProtobufLT 1 או עוזרי שרת קיימים (למשל, LT2: ספר LT:0Swift-Protobuftend זה תמיד פתח את מכשיר ה-p) כדי לאמת את קובץ ZLT.

בדיקות ו QA

Apple מספקת כלי בדיקת Wallet Pass בתוך Xcode שיכול לאמת את המבנה של ה-FLT:27 שלך (שימוש בו לפני חלוקת העוברים.בנוסף, לבדוק את מחזור החיים המלא: להוסיף עדכון דרך דחיפה) בדיקה עם תנאים רשת ירודה כדי להבטיח תצוגה לא מקוונת לא מקוונת עובד.סי דוחף הודעות באמצעות כלי APNs כדי לאמת את נקודות הקצה של השירות שלך להגיב כראוי.

דוגמאות אמיתיות בעולם ושימוש במקרים

חברת התעופה ושדות התעופה

כל חברות התעופה הגדולות - Delta, איחוד האמירויות, ועוד רבים אחרים - שימוש ב- PassKit עבור העלייה למטוסים.נוסעים יכולים לבדוק באמצעות אפליקציית החברה, להוסיף את המעבר לוולאט, ולהשתמש בו לאורך כל המסע שלהם.שער שינויים והחלפת המושבה דוחים באופן אוטומטי.חלק מחברות התעופה אפילו משתמשים במעבר כדי להציג גישה לטרקלטר או עדיפות למעמד של שביעות רצון.

אירוע

Ticketmaster, Live Nation ואפליקציות פסטיבל רבות תומכים ב-Apple Wallet Pass.מעריצים קונים כרטיס, מקבלים מעבר עם קוד CR רוטט (כדי למנוע הונאה), ולהשתמש בו לקבלת כניסה.העבר יכול לכלול גם רכישות נוספות כמו חניה או שדרוגים VIP. במהלך האירוע, מארגנים יכולים לדחוף עדכונים על שינויים בלוח הזמנים, מפות מקום או התראות מזג אוויר.

תחבורה ציבורית וחנייה

סוכנויות תחבורה עירונית (כמו MTA בניו יורק או TfL בלונדון) ניסו עם PassKit עבור כרטיסי טיסה חודשיים או כרטיס בודד.יש יישומי חניה להשתמש בוולקט עובר כרישי חניה דיגיטליים שניתן לאמת על ידי קציני אכיפה.עבור ליהנות מאותה יכולת דחיפה בזמן אמת - למשל, אם קו רכבת מופרך, ניתן להציע מסלולים חלופיים.

הגבלות ושיקולים

בעוד ש- PassKit הוא חזק, יש לו מגבלות מפתחי מפתח חייבים לתכנן:

  • (FLT:0iOS בלבד:FLT:1 Passes לא ניתן להוסיף למכשירי Android.If הקהל שלך הוא חוצה פלטפורמות, עליך להציע אלטרנטיבה (למשל, PDF או כרטיס נייד מבוסס אינטרנט).
  • (FLT:0) No Bluetooth או NFC אינטראקציה (על ידי ברירת מחדל): מעברים של LT:1 לא תומכים NFC אלא אם כן אתה מטביע מושב NFC של אפליקציה Native.
  • (FLT:0)Push לעדכן את השקיפות: FLT:1 בעוד הודעות דחיפה מהירות, המכשיר חייב להיות מקוון כדי לקבל את ההדק.אם משתמש אינו מקוון במהלך עדכון, המעבר יישאר מסולק עד שהם מתחברים.
  • (ב) ,0) מזכר ומחסן: 1FLT:1 כל מעבר הוא קטן (בדרך כלל 30-80 KB), אבל אם אתה נושא מיליוני עוברים, שירות האינטרנט שלך צריך לטפל במטבע גבוה.
  • (FLT:0) התחדשות: FLT:1IR חתומה של תעודות חתימה יפוג מדי שנה או שנתיים, עליך להבטיח השרת שלך מעדכן את האישור לפני תפוגה, אחרת כל עוברי החתימה עם האישור הישן יפסיקו להיות עדר (הם עדיין יעבדו, אבל דוחים חדשים נכשלים).

מסקנה

ה- iOS PassKit API מספק דרך חזקה, בטוחה וידידותית למשתמש לנהל את מעברי לוח וכרטיסים ב-Apple Wallet. על ידי מינוף של יצירת מעבר, חתימה, הפצה ועדכונים בזמן אמת, מפתחים יכולים לספק נסיעות או ניסיון אירועים חלקה שמונע ממשתמשים לעדכן מבלי לדרוש מעורבות מתמדת. יישום PassKit דורש תשומת לב זהירה להנחיות העיצוב והאבטחה של Apple, כמו גם שרת אמין, אך ורק שביעות רצון תפעולי יעיל.

לקריאה נוספת, מתייחס ל-Apple's FLT:0.10Kitische Documents FLT:1 ו-FLT:2PassKit Programming GuideFLT 3: 3 אלה משאבים מכסה להעביר את המפתחות של JSON, מפרטים תמונה, ואת פרוטוקול עדכון דחיפה בפירוט ממצה.