לחצן אינטרנט של JavaScript

ה-API של Google Wallet מאפשר למשתמשים להוסיף אובייקט ל-Google Wallet מהאינטרנט. המשתמשים יכולים להוסיף את הכרטיסים שלהם ישירות מהאתר שלכם.

במסמך הזה מופיעים פרטים על רכיב ה-HTML g:savetoandroidpay שמעבד לחצן של Google Wallet API, וגם על JSON Web Token שמתאר את שירות האינטרנט שאתם מספקים ל-Google.

JavaScript של ממשק ה-API של Google Wallet

כדי לנתח באופן אוטומטי תגי HTML של g:savetoandroidpay בטעינה, יש לכלול את קוד ה-JavaScript הרגיל

<script src="https://apis.google.com/js/platform.js" type="text/javascript"></script>

לאפליקציות AJAX ולרינדור מפורש של לחצני ממשק ה-API של Google Wallet, יש לכלול את הפרמטר "parsetags": "explicit".

<script src="https://apis.google.com/js/platform.js" type="text/javascript">
  {"parsetags": "explicit"}
</script>

תג HTML של g:savetoandroidpay

תג מרחב השמות g:savetoandroidpay מגדיר את מיקום המודעה ואת המאפיינים השונים של הלחצן 'הוספה ל-Google Wallet'. צריך להשתמש בתג הזה בעת רינדור של HTML ו-JWT בצד השרת.

<g:savetoandroidpay jwt="JWT" onsuccess="successHandler" onfailure="failureHandler" />
שדה תיאור נדרש התיאור
height מחרוזת צ' גובה הלחצן להצגה. ערכים אפשריים הם: small (גובה 30px) ו-standard (גובה 38px). ערך ברירת המחדל של height הוא small. בקטע לחצני Google Wallet API אפשר לראות דוגמאות ללחצנים עם הגדרות height שונות.
jwt מחרוזת Y JWT של Google Wallet API.
onsuccess מחרוזת צ' שם המחרוזת של פונקציית ה-handler של הקריאה החוזרת (callback) שהושלמה לשמירה בהצלחה.
onfailure מחרוזת צ' שם המחרוזת של פונקציית ה-handler של הקריאה החוזרת לכשל בשמירת ה-כשל. הפונקציה הזו מעבירה אובייקט שגיאה שמכיל errorCode ו-ErrorMessage.
onprovidejwt מחרוזת צ' שם המחרוזת של פונקציית ה-handler שמוגדרת ב-JWT. מטרת הפונקציה הזו היא ליירט את נתוני ה-JWT ולבצע בהם שינויים לפני הוספת האובייקט ל-Google Wallet. הפונקציה הזו לא מקבלת פרמטרים והיא חייבת להחזיר את ה-JWT כמחרוזת. כשמטמיעים את הגורם המטפל באירועים, ניתן לאחזר את נתוני ה-JWT המקוריים בשדה this.getOpenParams().renderData.userParams.jwt.
size מחרוזת צ' רוחב הלחצן להצגה. אפשר להגדיר את size לערך matchparent כך שהרוחב יתאים לרוחב של רכיב ההורה. לחלופין, אפשר להשאיר את השדה size לא מוגדר, כדי שהרוחב יימתח בהתאם לרוחב של ההגדרה text. בקטע לחצני Google Wallet API אפשר לראות דוגמאות ללחצנים עם הגדרות size שונות.
text מחרוזת צ' הוצא משימוש
textsize מחרוזת צ' כשמציינים את textsize=large, מוצגים גדלים משמעותיים של הטקסט וגודל הלחצן, במקרים עם דרישות מיוחדות בממשק המשתמש.
theme מחרוזת צ' עיצוב הלחצן להצגה. הערכים האפשריים הם: dark ו-light. עיצוב ברירת המחדל הוא dark. בקטע לחצני Google Wallet API אפשר לראות דוגמאות ללחצנים עם הגדרות theme שונות.

JWT של ממשק ה-API של Google Wallet

ה-JWT של ממשק ה-API של Google Wallet מגדיר את האובייקטים והמחלקות לשמירה.

פרוטוקול

        {
  "iss": "example_service_account@developer.gserviceaccount.com",
  "aud": "google",
  "typ": "savetoandroidpay",
  "iat": 1368029586,
  "payload": {
    "eventTicketClasses": [{
      ... //Event ticket Class JSON
    }],
    "eventTicketObjects": [{
      // Event ticket Object JSON
    }],
    "flightClasses": [{
      // Flight Class JSON
    }],
    "flightObjects": [{
      // Flight Object JSON
    }],
    "giftCardClasses": [{
      // Gift card Class JSON
    }],
    "giftCardObjects": [{
      // Gift card Object JSON
    }],
    "loyaltyClasses": [{
      // Loyalty Class JSON
    }],
    "loyaltyObjects": [{
      // Loyalty Object JSON
    }],
    "offerClasses": [{
      // Offer Class JSON
    }],
    "offerObjects": [{
      // Offer Object JSON
    }],
    "transitClasses": [{
      // Transit Class JSON
    }],
    "transitObjects": [{
      // Transit Object JSON
    }]
  },
  "origins": ["http://baconrista.com", "https://baconrista.com"]
}

הערה: אסימוני ה-JWT האלה חתומים באמצעות RSA-SHA256. מפתח החתימה הוא המפתח שנוצר על ידי חשבון שירות OAuth.

שדה תיאור נדרש התיאור
iss מחרוזת Y כתובת האימייל שנוצרה באמצעות חשבון שירות OAuth 2.0.
aud מחרוזת Y קהל. הקהל של אובייקטים של Google Wallet API יהיה תמיד google.
typ מחרוזת Y סוג ה-JWT. הקהל של אובייקטים של Google Wallet API יהיה תמיד savetoandroidpay.
iat מספר שלם Y מונפקת בשניות מאז תחילת התקופה.
payload אובייקט Y אובייקט מטען ייעודי (payload).
payload.eventTicketClasses Array צ' לשמור את קטגוריית הכרטיס לאירוע.
payload.eventTicketObjects Array צ' אובייקט של כרטיס לאירוע לשמירה.
payload.flightClasses Array צ' כדי לשמור, יש לציין את מחלקת הטיסה.
payload.flightObjects Array צ' אובייקט טיסה לשמירה.
payload.giftCardClasses Array צ' קטגוריה של כרטיסי מתנה לחיסכון.
payload.giftCardObjects Array צ' אובייקט של כרטיס מתנה לשמירה.
payload.loyaltyClasses Array צ' רמת מועדון הלקוחות לשמירה.
payload.loyaltyObjects Array צ' אובייקט נאמנות לשמירה.
payload.offerObjects Array צ' אובייקט הצעה לשמירה.
payload.offerClasses Array צ' מציעים את הכיתה כדי לשמור.
payload.transitObjects Array צ' אובייקט של תחבורה ציבורית לשמירה.
payload.transitClasses Array צ' כדי לשמור, צריך להזין את מחלקת התחבורה הציבורית.
origins Array Y מערך של דומיינים לאישור לפונקציונליות השמירה של JWT. הלחצן של Google Wallet API לא יוצג כשהשדה origins לא מוגדר. כאשר השדה 'מקורות' לא מוגדר, ייתכן שתקבלו את ההודעה 'טעינה נדחתה על ידי X-Frame-Options' או ההודעה 'נדחה להצגה' במסוף הדפדפן.

ה-JWT המקודד שלכם אמור להיראות דומה לדוגמה הבאה:

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJnb29nbGUiLCJvcmlnaW5zIjpbImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSJdLCJpc3MiOiJzMmFwLXRvb2wuZ29vZ2xlLmNvbUBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20iLCJpYXQiOjE1NTE5ODcxNTEsInR5cCI6InNhdmV0b3dhbGxldCIsInBheWxvYWQiOnsib2ZmZXJPYmplY3RzIjpbeyJpZCI6IjMyMDI0MTMyNDE4NDM2OTk0MDEuMDFfT2ZmZXJPYmplY3RJZCJ9XX19.maHX40WWT29TC_kEb90EKQBH9AiTYAZR3153K8UI7fznVnfjVdlwsH_GKTECV3PGXdNnKCcmatUbKsONC0bxrnAHYG02kuvA1D3hSctz_amU66ntsvGIDe13mpxTzhI8fPvt9KMP1iaO7uOJuLQIHwipu4uRFAjyFaHGVaSFaP9c53qQyb_Zgyyk50M-MhH2n4kDpstNCqUJKWaadQkOWjrtMjwGzQ_ME04lbR4wb_mfK1A7Rc1UieWkxM9aMl5TOPubBKxKRRk_CqillN8XoTl9MI5RRGPuElVO28zGpYlFS6BarzDaaUfmbRZGvfF8ZiKrHZKxVrJjfZIJ2TCcDw

פונקציית gapi.savetoandroidpay.render

הפונקציה הזו מאפשרת לעבד באופן מפורש את לחצן Google Wallet API.

gapi.savetoandroidpay.render("dom-container",{
  "jwt": "JWT",
  "onsuccess": "successHandler",
  "onfailure": "failureHandler"
});
שדה תיאור נדרש התיאור
dom-container מחרוזת Y המזהה של מאגר התגים שבו מוצב לחצן Google Wallet API.
jwt מחרוזת Y JWT מגדיר תוכן לשמירה.
onsuccess מחרוזת צ' שם המחרוזת של פונקציית ה-handler של הקריאה החוזרת (callback) שהושלמה לשמירה בהצלחה.
onfailure מחרוזת צ' שם המחרוזת של פונקציית ה-handler של הקריאה החוזרת לכשל בשמירת ה-כשל. הפונקציה הזו מעבירה אובייקט שגיאה שמכיל errorCode ו-ErrorMessage.
onprovidejwt מחרוזת צ' שם המחרוזת של פונקציית ה-handler שמוגדרת ב-JWT. מטרת הפונקציה הזו היא ליירט את נתוני ה-JWT ולבצע בהם שינויים לפני הוספת האובייקט ל-Google Wallet. הפונקציה הזו לא מקבלת פרמטרים והיא חייבת להחזיר את ה-JWT כמחרוזת. כשמטמיעים את הגורם המטפל באירועים, ניתן לאחזר את נתוני ה-JWT המקוריים בשדה this.getOpenParams().renderData.userParams.jwt.

קודי שגיאה והודעות של Google Wallet API

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

        {
          "errorCode": "errorCode",
          "errorMessage": "errorMessage"
        }
errorCode errorMessage
SERVICE_FAILURE אירעה שגיאה בשרת של Google Wallet.
CLASS_NOT_FOUND המחלקה שיש הפניה אליה באובייקט לא נמצאה.
CLASS_MISMATCH האובייקט חייב להיות קיים, מאותו סוג, וחייב להפנות למחלקה הסוגרת.
ORIGIN_MISMATCH מקור הלחצן לא תואם לאלה שצוינו ברשימת המקורות.
INVALID_NUM_TYPES ניתן לציין סוג אובייקט אחד בדיוק.
INVALID_SIGNATURE לא ניתן לאמת את החתימה.
INVALID_DUPLICATE_IDS אין להשתמש באובייקטים או במחלקות כפולים.
INVALID_JWT JWT לא חוקי.
INVALID_EXP_IAT JWT פג תוקף או הונפק בעתיד.
INVALID_AUD ערך לא חוקי בשדה AUD.
INVALID_TYP ערך לא חוקי בשדה TYP.
INVALID_NUM_OBJECTS ניתן לציין אובייקט אחד ולכל היותר מחלקה אחת עבור כרטיסי מועדון לקוחות, כרטיסי מתנה ומבצעים.
MALFORMED_ORIGIN_URL כתובת אתר מקור פגומה. כתובת ה-URL חייבת להכיל פרוטוקול ודומיין.
MISSING_ORIGIN חובה לציין מקור.
MISSING_FIELDS באובייקט או במחלקה המוקפים היו חסרים שדות חובה.

התאמה לשוק המקומי

השפה בלחצן ה-JavaScript משתנה בהתאם לקריטריונים הבאים:

  1. אם המשתמש מחובר ל-Google, הלחצן מעובד בשפה המועדפת שצוינה בפרופיל חשבון Google של המשתמש. המשתמשים יכולים לקרוא את המאמר שינוי שפה כדי ללמוד איך לשנות את השפה המועדפת בחשבון Google שלהם.
  2. אם המשתמש לא מחובר ל-Google, הלחצן משתמש בערך ACCEPT-LANGUAGE בכותרת ה-HTTP.

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