ה-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 משתנה בהתאם לקריטריונים הבאים:
- אם המשתמש מחובר ל-Google, הלחצן מעובד בשפה המועדפת שצוינה בפרופיל חשבון Google של המשתמש. המשתמשים יכולים לקרוא את המאמר שינוי שפה כדי ללמוד איך לשנות את השפה המועדפת בחשבון Google שלהם.
- אם המשתמש לא מחובר ל-Google, הלחצן משתמש בערך
ACCEPT-LANGUAGE
בכותרת ה-HTTP.
אם שמתם לב שהלחצן לא מוצג בשפה הנכונה המבוססת על הלוגיקה שלמעלה, או אם הניסוח לא טבעי, אפשר לפנות לצוות התמיכה שלנו.