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

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

בחומר העזר הזה מופיעים פרטים על רכיב ה-HTML g:savetoandroidpay שמעבד לחצן של Google Wallet API, וכן על אסימון אינטרנט מסוג JSON שמתאר את שירות האינטרנט שלכם ל-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 (בגובה 30 פיקסלים) ו-standard (גובה של 38 פיקסלים). ברירת המחדל של height היא small. בקטע לחצני Google Wallet API אפשר לראות דוגמאות ללחצנים עם הגדרות height שונות.
jwt מחרוזת כן 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 של Google Wallet API

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

ייצוג JSON

{
  "iss": "example_service_account@developer.gserviceaccount.com",
  "aud": "google",
  "typ": "savetowallet",
  "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"]
}

שדות

שדה סוג חובה תיאור
iss מחרוזת כן כתובת האימייל שנוצרה על ידי חשבון השירות ב-Google Cloud.
aud מחרוזת כן קהל. הקהל של אובייקטים של Google Wallet API יהיה תמיד google.
typ מחרוזת כן סוג ה-JWT. הקהל של אובייקטים של Google Wallet API יהיה תמיד savetowallet.
iat מספר שלם כן מונפקים לפי הזמן בשניות מאז תחילת התקופה של זמן מערכת.
payload אובייקט כן אובייקט מטען ייעודי (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 כן מערך של דומיינים לאישור לפונקציונליות השמירה של 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 מחרוזת כן מזהה של מאגר תגים להצבת לחצן Google Wallet API.
jwt מחרוזת כן 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 המקורית פגומה. כתובת ה-URL חייבת להכיל פרוטוקול ודומיין.
MISSING_ORIGIN חובה לציין מקור.
MISSING_FIELDS באובייקט או במחלקה המוקפים היו חסרים שדות חובה.

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

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

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

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