פתרון בעיות

מדריך פתרון הבעיות באתר כולל בעיות ושאלות שקשורות לנושאים הבאים.

הרשמה וגישה

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

המוֹכר הזה לא מוגדר לשימוש ב-Google Pay
ב-Google Pay API נדרש merchantId של Google לאתרים שמוגדרים PaymentsClient עבור סביבת PRODUCTION. חשבון Google merchantId משויך לדומיין אחד או יותר עם שם מלא באמצעות המסוף של Google Pay ו-Wallet. כדי לקבל מידע נוסף, אפשר לבדוק את פרטי השגיאה שהוחזרו.
המוֹכר הזה לא השלים את ההרשמה לשימוש ב-Google Pay API. כדי לאמת את החשבון, צריך להיכנס אל מסוף התשלומים (https://pay.google.com/business/console).
לא השלמת את תהליך ההרשמה של האתרים שלך ל-Google Pay API. בדיקה שליחת בקשה לגישה לסביבת הייצור כדי להירשם באמצעות המסוף של Google Pay ו-Wallet ולבקש בדיקה של השימוש באתר ב-Google Pay API.
לפרופיל של הסוחר הזה אין גישה לתכונה הזו
Google לא הגדירה את האתר שלכם לשימוש ב-Google Pay API. בקטע Review (בדיקה), לוחצים על Request production access (בקשה לגישה לסביבת הייצור) כדי לבקש בדיקה של השימוש באתר ב-Google Pay API דרך המסוף של Google Pay ו-Wallet.
השילוב הזה עם Google Pay API מושבת. אפשר לפנות אלינו לקבלת מידע נוסף (https://developers.google.com/pay/api/faq#how-to-get-support).
אפשר לפנות אלינו כדי לקבל מידע נוסף על השלבים הנדרשים להפעלה מחדש של Google Pay API בחשבון Google.
הדומיין example.com לא רשום לשימוש ב-API הזה
הדומיין שבו מתארח דף התשלום לא משויך לחשבון merchantId שבו אתם משתמשים. מוודאים שהפרמטר merchantId נכון ושהדומיין רשום דרך המסוף של Google Pay ו-Wallet.
צריך להפעיל את Google Pay API בהקשר מאובטח!
אפשר להשתמש ב-Google Pay API רק באתרים בהקשר מאובטח. מידע נוסף זמין במאמר בנושא הקשרים מאובטחים.
לא נמצאו מפתחות לפרופיל המוֹכר הזה
כדי להשלים שילוב של DIRECTtokenizationSpecification type, צריך לרשום את מפתח ההצפנה הציבורי שלכם ב-Google דרך המסוף של Google Pay ו-Wallet.

merchantId

יכול להיות שתיתקלו בשגיאות הבאות שקשורות ל-merchantId בשלב מסוים בתהליך השילוב. הרשימה הזו כוללת כמה טיפים שיעזרו לכם לפתור בעיות אם השגיאות האלה יופיעו.

חובה להגדיר את merchantId.
הפרמטר merchantId בתוך PaymentDataRequest צריך להיות מוגדר לערך שסופק באמצעות המסוף של Google Pay ו-Wallet. הפרמטר merchantId נדרש רק כשמשתמשים ב-PaymentsClient שמוגדר לסביבת PRODUCTION. כדי לבקש בדיקה של השימוש באתר שלך ב-Google Pay API ולקבל את merchantId, צריך לעיין ברשימת המשימות שלנו לשילוב.
‫merchantId הוא לא מחרוזת
הפרמטר merchantId בתוך PaymentDataRequest חייב להיות תמיד מחרוזת. לפני שמבצעים קריאה ל-API, צריך לוודא שהסוג של הפרמטר merchantId שבו משתמשים הוא מחרוזת.
הערך של merchantId לא רשום.
צריך להגדיר את הפרמטר merchantId בתוך PaymentDataRequest באמצעות המסוף של Google Pay ו-Wallet. מידע נוסף זמין במאמר בנושא שליחת בקשת גישה לייצור.

תוקף השער

בשלב מסוים בתהליך השילוב, יכול להיות שתיתקלו בשגיאות הבאות שקשורות לתוקף של שער התשלום. הרשימה הזו כוללת כמה טיפים שיעזרו לכם לפתור בעיות אם השגיאות האלה יופיעו.

שער לא ידוע 'yourgateway'
פרמטר השער שציינתם ב-paymentMethodTokenizationParameters.parameters לא נתמך כרגע על ידי Google. לקבלת מידע נוסף על מזהה השער והשדות המשויכים, כמו gatewayMerchantId, אפשר לפנות לשער.
אי אפשר להשתמש בשער 'example' במצב ייצור
הערך של פרמטר השער שמופיע בדוגמה משמש רק למטרות בדיקה, ואי אפשר להשתמש בו עם PaymentsClient שמוגדר עבור סביבת PRODUCTION. לקבלת מידע נוסף על ערכי הפרמטרים שצריך להגדיר לשימוש ב-Google Pay API, אפשר לפנות אל שער התשלומים.PaymentMethodTokenizationSpecification

תוקף האובייקט

יכול להיות שבשלב מסוים בשילוב תיתקלו בשגיאות הבאות שקשורות לתוקף של אובייקט. הרשימה הזו כוללת כמה טיפים שיעזרו לכם לפתור בעיות אם השגיאות האלה יופיעו.

הבקשה PaymentDataRequest של Google Pay היא לא JSON תקין
הפרמטר שמועבר אל loadPaymentData חייב להיות תמיד אובייקט PaymentDataRequest תקין.
חובה להגדיר את transactionInfo!
הפרמטר transactionInfo בתוך PaymentDataRequest חייב להיות תמיד אובייקט TransactionInfo תקין.

מוכרים ישירים

יכול להיות שתיתקלו בשגיאות הבאות שקשורות למוכרים ישירים בשלב מסוים בתהליך השילוב. הרשימה הזו כוללת כמה טיפים שיעזרו לכם לפתור בעיות אם השגיאות האלה יופיעו.

אימות חתימה
יכול להיות שתיתקלו בשגיאה באימות החתימה אם merchantId שגוי. זה יכול לקרות בסביבת TEST כשמשתמשים בספרייה paymentmethodtoken של Tink. כדי למנוע את הבעיה הזו, צריך להגדיר את YOUR_MERCHANT_ID לערך 12345678901234567890 ב:
.recipientId("merchant:YOUR_MERCHANT_ID")
אי אפשר לפענח את הטוקן
אם אתם משתמשים בספריית paymentmethodtoken של Tink כדי לפענח אסימון, שימו לב לנקודות הבאות:
  • מוודאים שסביבת התגובה של Google Pay API תואמת לסביבת paymentmethodtoken של Tink. בדוגמה הבאה מפורטים פרטים נוספים:
    • אם התגובה של Google Pay API הוחזרה על ידי הסביבה TEST, אז Tink מצביע על סביבת הבדיקה לצורך פענוח.
  • אל תשנו את התגובה מ-Google Pay API לפני שהיא מועברת אל Tink. חשוב לוודא שמעבירים את כל הטוקן שמוחזר מהתגובה של Google Pay API. לפרטים נוספים, אפשר לעיין בהערה הבאה:
  • מוודאים שיש לכם את המפתח הפרטי הנכון שמשויך למפתח הציבורי שרשמתם ב-Google.
יצירת זוג מפתחות פרטיים וציבוריים ב-Windows
אם אתם משתמשים ב-Windows ורוצים לבצע את השלבים שמפורטים במאמר שימוש ב-OpenSSL ליצירת זוג מפתחות פרטיים וציבוריים, אתם צריכים להתקין את Cygwin במחשב. הפעולה הזו נדרשת כדי להריץ את פקודות Linux.

אובייקטים של שגיאות

אובייקטים של שגיאות הם אובייקטים שמוחזרים על ידי הבטחה שנדחתה משיטת JavaScript של לקוח.

PaymentsError
האובייקט הזה מכיל פרטים על שגיאות שמוחזרות על ידי שיטות JavaScript של הלקוח. יכול להיות שהשגיאות לא יוצגו בתיבת דו-שיח שמוצגת למשתמש.
נכס סוג תיאור
statusCode מחרוזת קוד קצר שמתאר את סוג השגיאה.
statusMessage מחרוזת הודעה שמוצגת למפתחים ומתארת את השגיאה שנתקלו בה ואת השלבים האפשריים לתיקון שלה.
שגיאות נפוצות
באובייקט הזה מוצגות שגיאות שאולי תיתקלו בהן בכל שיטות JavaScript. חשוב לבדוק את המסוף למפתחים כדי לראות אם יש הודעות שגיאה נוספות.
קוד סטטוס תיאור
BUYER_ACCOUNT_ERROR המשתמש הנוכחי ב-Google לא יכול לספק פרטי תשלום.
DEVELOPER_ERROR

הפורמט של פרמטר שהועבר שגוי. יכול להיות שתופיע הודעת שגיאה במסוף הדפדפן לכל הסביבות שהוגדרו.

MERCHANT_ACCOUNT_ERROR

לאתר שדרכו מתבצעת גישה אל Google Pay API אין את ההרשאה המתאימה. יכול להיות שהסיבה לכך היא הגדרה שגויה או מזהה מוֹכרים שגוי שהוגדר בבקשה. פרטים נוספים מופיעים בשדה statusMessage. אם אתם ממשיכים להיתקל בבעיות, אתם יכולים לפנות לתמיכה.

INTERNAL_ERROR שגיאת שרת כללית.

CardInfo

מהי התכונה CardInfo?
ב-Google Pay מוצג לצרכנים לחצן התשלום של Google Pay עם כרטיס, שמציג גם את רשת כרטיסי האשראי וגם את 4 הספרות האחרונות של הכרטיס.
למה התכונה CardInfo לא מוצגת בהטמעה שלי?

כדי שהתכונה CardInfo תפעל, התנאים הבאים צריכים להתקיים:

למה לחצן התשלום של Google Pay נטען ללא הפסקה?
אל תסירו את פונקציות ה-event listener של onLoad. אם מסירים את פונקציות event listener של onLoad, יכול להיות שלחצן התשלום של Google Pay ייטען ללא הפסקה.
למה לא מופיעה בקשה לתשלום אחרי שלוחצים על לחצן התשלום של Google Pay?
מקצים קריאה חוזרת (callback) של event listener לאירוע ButtonOptions.onClick.

OR_BIBED_15 שגיאות

יכול להיות שתיתקלו בשגיאה OR_BIBED_15 בשלב מסוים בתהליך ההטמעה. ברשימה הזו מופיעים טיפים שימושיים לפתרון בעיות במקרה שהשגיאה הזו מתרחשת.

עבודה עם WebViews
כדי לוודא שהשילוב שלכם תואם ל-WebViews, פועלים לפי המדריכים ל-Android ול-iOS.
Cross-Origin-Opener-Policy כותרת תגובת HTTP
אם כותרת התגובה של HTTP ‏Cross-Origin-Opener-Policy מוגדרת ל-same-origin, יכול להיות שהיא תמנע מהדפדפן לפתוח את החלון הקופץ הנדרש כדי שהמשתמשים יוכלו להשלים את העסקה. כדי לנסות לפתור את הבעיות האלה, אפשר לשנות את הערך של הכותרת ל-same-origin-allow-popups.
העיכובים בין אירוע הקליק של המשתמשים לבין הקריאה אל loadPaymentData()
אם יש עיכוב אחרי שלוחצים על הלחצן של Google Pay (או על לחצן דומה של תהליך התשלום) ולפני הקריאה loadPaymentData() (דוגמאות: setTimeout(), קריאות נוספות לרשת או לוגיקה דומה שפועלת לאורך זמן), יכול להיות שמנגנון חסימת החלונות הקופצים של הדפדפן יופעל. ההמלצה שלנו היא לא להגדיר עיכובים בין הקליק של המשתמש לבין הקריאה של loadPaymentData().