ביולי 2018, הוספנו ל-Google Pay API מבני אובייקטים חדשים לאובייקטים מסוג
PaymentDataRequest ו-
IsReadyToPayRequest. במדריך הזה מוסבר איך לעדכן אובייקטים בפורמט של גרסה 1 של Google Pay API לפורמט של גרסה 2.
אמצעי תשלום
גרסת ה-API מצוינת בכל אובייקט בקשה בגרסה 2 של Google Pay API.
בגרסה 1 של Google Pay API, כרטיסים היו אמצעי התשלום היחיד שנתמך. CARD payment method הוא אחד מכמה אמצעי תשלום אפשריים בגרסה 2 של Google Pay API. באתרים שבהם צוין בעבר ערך allowedPaymentMethods של CARD, צריך עכשיו להגדיר ערך allowedAuthMethods של PAN_ONLY. באתרים שבהם צוין בעבר ערך allowedPaymentMethods של TOKENIZED_CARD, צריך עכשיו להגדיר ערך allowedAuthMethods של CRYPTOGRAM_3DS.
רשתות הכרטיסים המותרות מצוינות לצד שיטות האימות הנתמכות לכרטיסים ברשתות האלה.
apiVersion 1
{ allowedPaymentMethods: [ 'CARD', 'TOKENIZED_CARD' ], cardRequirements: { allowedCardNetworks: [ 'AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA' ] } }
apiVersion 2
{ apiVersion: 2, apiVersionMinor: 0, allowedPaymentMethods: [{ type: 'CARD', parameters: { allowedAuthMethods: [ 'PAN_ONLY', 'CRYPTOGRAM_3DS' ], allowedCardNetworks: [ 'AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA' ] } }] }
רשתות הכרטיסים המותרות ושיטות האימות שלהן כלולות ב
IsReadyToPayRequest של CARD
אמצעי התשלום.
יצירת טוקנים של נתוני תשלום בכרטיס
Google Pay API מחזיר נתוני כרטיס מוצפנים שמופנים על ידי שער התשלומים שציינתם או מפוענחים בשרתים שלכם. בגרסה 2 של Google Pay API, הטוקניזציה של אמצעי התשלום מועברת אל תוך CARD אמצעי התשלום.
apiVersion 1
{ paymentMethodTokenizationParameters: { tokenizationType: 'PAYMENT_GATEWAY', parameters: { ';gateway': 'example', 'gatewayMerchantId': 'exampleMerchantId' } } }
apiVersion 2
{ allowedPaymentMethods: [{ type: 'CARD', tokenizationSpecification: { type: 'PAYMENT_GATEWAY', parameters: { 9;gateway': 'example', 'gatewayMerchantId': 'exampleMerchantId' } } }] }
מספר חשבון Merchant ב-Google
מזהה מוֹכר ב-Google היה מאפיין ברמה העליונה בגרסה 1 של Google Pay API. עכשיו, מספר המוכר ב-Google מופיע בתוך אובייקט MerchantInfo עם שם מוכר אופציונלי.
apiVersion 1
{ merchantId: '12345678901234567890' }
apiVersion 2
{ merchantInfo: { merchantId: '12345678901234567890' } }
כתובת לחיוב
כתובת לחיוב ומספר טלפון לחיוב הם פרטים אופציונליים שמשויכים לאמצעי תשלום CARD.
אם אתר מבקש כתובת לחיוב, כל ההגדרות שקשורות לתשובה הצפויה ממוקמות באובייקט BillingAddressParameters.
apiVersion 1
{ cardRequirements: { billingAddressRequired: true, billingAddressFormat: 'FULL' }, phoneNumberRequired: true }
apiVersion 2
{ allowedPaymentMethods: [{ type: 'CARD', parameters: { billingAddressRequired: true, billingAddressParameters: { format: 'FULL', phoneNumberRequired: true } } }] }
כתובת למשלוח
דרישה אופציונלית לכתובת למשלוח נשארת ברמה העליונה של אובייקט PaymentDataRequest.
השם של המאפיין shippingAddressRequirements השתנה ל-shippingAddressParameters.
יכול להיות שבתשובות קודמות של Google Pay API הוחזר מספר טלפון כחלק מכתובת המשלוח, אם מספר הטלפון נדרש. החל מגרסה 14.0.0 של Google Pay API, אין יותר תמיכה במספר טלפון למשלוח. צריך לעדכן את כל רכיבי ה-handler של התגובות שמצפים למספר טלפון למשלוח.
apiVersion 1
{ shippingAddressRequired: true, shippingAddressRequirements: { allowedCountryCodes: [ 'US', 'CA' ] } }
apiVersion 2
{ shippingAddressRequired: true, shippingAddressParameters: { allowedCountryCodes: [ 'US', 'CA' ] } }
תגובה של PaymentData
התשובה של אובייקט PaymentData לאתרים שמגדירים ערך מאפיין apiVersion של 2 ב-PaymentDataRequest השתנתה, ועכשיו היא כוללת הפניה לכרטיסים כאחת מכמה תשובות אפשריות של נתוני תשלום.
המאפיינים apiVersion ו-apiVersionMinor שכלולים באובייקט PaymentDataRequest מופיעים בתגובה PaymentData כדי לציין את הפורמט הצפוי.
apiVersion 1
{ // no version specified }
apiVersion 2
{ apiVersion: 2, apiVersionMinor: 0 }
מידע על אמצעי תשלום נבחר ועל הטוקניזציה שלו מופיע במאפיין paymentMethodData.
שני מאפיינים הוסרו מאובייקט cardInfo של אמצעי התשלום בכרטיס:
cardClass ו-cardImageUri.
apiVersion 1
{ cardInfo: { cardDescription: 'Visa •••• 1234', cardNetwork: 'VISA', cardDetails: 1234 }, paymentMethodToken: { tokenizationType: 'PAYMENT_GATEWAY', token: 'examplePaymentMethodToken' } }
apiVersion 2
{ paymentMethodData: { type: 'CARD', description: 'Visa •••• 1234', info: { cardNetwork: 'VISA', cardDetails: '1234' }, tokenizationData: { type: 'PAYMENT_GATEWAY', token: 'examplePaymentMethodToken' } } }
תשובה להודעה מוצפנת
אתרים שמציינים סוג טוקניזציה של אמצעי תשלום DIRECT ומקבלים אמצעי תשלום בגרסה 1 של API TOKENIZED_CARD צריכים לעדכן את אופן הטיפול במאפיין encryptedMessage המפוענח. האתר צריך לעשות את זה כדי להמשיך להעביר את טוקנים של מכשירי Android שאומתו באמצעות קריפטוגרמה של 3-D Secure ומחוון אופציונלי של מסחר אלקטרוני (ECI) אל השער או המעבד. הכרטיסים הם paymentMethod של CARD, ומידע נוסף על שיטת האימות של הכרטיס שנבחר מופיע בpaymentMethodDetails.authMethod.
apiVersion 1
{ "paymentMethod": "TOKENIZED_CARD", "paymentMethodDetails": { "authMethod": "3DS", "dpan": "1111222233334444", "expirationMonth": 10, "expirationYear": 2020, "3dsCryptogram": "AAAAAA...", "3dsEciIndicator": "eci indicator" } }
apiVersion 2
{ "paymentMethod": "CARD", "paymentMethodDetails": { "authMethod": "CRYPTOGRAM_3DS", "pan": "1111222233334444", "expirationMonth": 10, "expirationYear": 2020, "cryptogram": "AAAAAA...", "eciIndicator": "eci indicator" } }