סוגי בסיסים
עגלת קניות
מכיל את פרטי ההזמנה, וגם את סוג הבקשה (איסוף או משלוח). עגלת הקניות מכילה גם את פרטי המשלוח, את התשלום על שירות ואת כתובת המשלוח. האובייקטCart
מוגדר בקובץ Checkout AppRequest
.f
אתם צריכים לכלול עותק של עגלת הקניות בקובץ Checkout AppResponse
בטבלה הבאה מפורטים המאפיינים לסוג Cart
:
נכס | סוג | תיאור | |
---|---|---|---|
@type |
המשך |
הסוג של האובייקט. צריך להשמיט את השדה הזה אם אובייקט ההורה Cart הוא חלק מ-ProposedOrder. ערך: |
|
id |
String |
מזהה אופציונלי של עגלת הקניות. |
|
merchant |
Merchant |
המוכר שמשויך לעגלת הקניות הזו. |
|
lineItems |
List<LineItem > |
חובה. רשימה של המוצרים או השירותים שהמשתמש מזמין. חייב להכיל לפחות פריט אחד. |
|
promotions |
List<Promotion > |
המבצע שחלה על עגלת הקניות הזו. בשלב הזה יש תמיכה רק בקידום מכירות אחד. |
|
notes |
String |
הערות לגבי ההזמנה או הוראות המשלוח. |
|
extension |
FoodCartExtension |
מגדיר פרטים על המשתמש, כמו העדפות למילוי הזמנות. |
בדוגמה הבאה מוצג רכיב Cart
:
דוגמה 1
{ "@type": "type.googleapis.com/google.actions.v2.orders.Cart", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }
דוגמה 2
{ "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }
יצירת קשר
פרטים על האדם שמקבל את ההזמנה. הוא זמין רק ב-AppResponse
.
בטבלה הבאה מפורטים המאפיינים של הסוג Contact
:
נכס | סוג | תיאור | |
---|---|---|---|
displayName |
String |
שם האדם שמקבל את ההזמנה, שברצונך להציג אותה. משתמשים בשדה הזה אם לא צוינו השדות firstName ו-lastName. לדוגמה: |
|
email |
String |
כתובת האימייל של מי שמקבל את ההזמנה. לדוגמה: |
|
firstName |
String |
השם הפרטי של האדם שמקבל את ההזמנה. לדוגמה: |
|
lastName |
String |
שם המשפחה של מי שיקבל את ההזמנה. לדוגמה: |
|
phoneNumber |
String |
מספר הטלפון של מי שמקבל את ההזמנה, כולל קידומת המדינה. לדוגמה: |
|
emailVerified |
בוליאני |
מציין אם האדם שמקבל את ההזמנה מחובר לחשבון Google שלו. |
בדוגמה הבאה מוצג רכיב Contact
:
דוגמה
{ "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" }
CustomPushMessage
מכיל את ה-OrderUpdate
של הבקשה.
בטבלה הבאה מפורטים המאפיינים לסוג CustomPushMessage
:
נכס | סוג | תיאור | |
---|---|---|---|
orderUpdate |
OrderUpdate |
חובה. מידע מעודכן לגבי ההזמנה. |
בדוגמה הבאה מוצג רכיב CustomPushMessage
:
דוגמה
{ "orderUpdate": { "actionOrderId": "sample_action_order_id", "orderState": { "state": "IN_TRANSIT", "label": "Order is on the way" }, "inTransitInfo": { "updatedTime": "2017-07-17T12:00:00Z" }, "updateTime": "2017-07-17T12:00:00Z", "orderManagementActions": [ { "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }, { "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }, { "type": "CALL_RESTAURANT", "button": { "title": "Call restaurant", "openUrlAction": { "url": "tel:+16505554679" } } } ], "receipt": { "userVisibleOrderId": "userVisibleId1234" }, "infoExtension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z" } } }
DeliveryInfo
בטבלה הבאה מפורטים המאפיינים לסוג DeliveryInfo
:
נכס | סוג | תיאור | |
---|---|---|---|
deliveryTimeIso8601 |
String |
זמן האספקה המשוער, בפורמט חותמת זמן לפי תקן ISO 8601: "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" או בפורמט משך זמן: "P(n)Y(n)M(n)DT(n)H(n)M(n)S". לדוגמה, PT90M מייצג משך זמן של 90 דקות. ערך ברירת המחדל 'PT0M' מציין שזמן האספקה המועדף הוא מוקדם ככל האפשר. מקור: https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations. אפשר להשתמש באפשרות הזו כדי לעדכן את זמן האספקה המשוער בתשובה שלכם בתהליך התשלום. לדוגמה: |
בדוגמה הבאה מוצג רכיב DeliveryInfo
:
דוגמה
{ "deliveryTimeIso8601": "PT90M" }
כתב ויתור
בטבלה הבאה מפורטים המאפיינים של הסוג Disclaimer
:
נכס | סוג | תיאור | |
---|---|---|---|
predefinedMessage |
PredefinedMessage |
חובה. כדי להציג הודעות כתב ויתור מוגדרות מראש במהלך התשלום. |
|
feeAmount |
Money |
השותף יחייב את המוכר בעמלה בסך N על ההזמנה הזו. |
|
feeAmountRange |
FeeAmountRange |
השותף יחייב את המסעדה בעמלה בסכום של N עד M לכל הזמנה. |
|
feePercent |
מספר |
השותף יחייב את המוכר בעמלה של N% על ההזמנה הזו. |
|
feePercentRange |
FeePercentRange |
השותף יגבה מהמוכר עמלה של N% עד M% לכל הזמנה. |
בדוגמה הבאה מוצג רכיב Disclaimer
:
דוגמה 1
{ "predefinedMessage": "NEW_YORK_DELIVERY_FEE_TIP_DISCLAIMER" }
דוגמה 2
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE" }
דוגמה 3
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feePercent": 25 }
דוגמה 4
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feePercentRange": { "minFeePercent": 20, "maxFeePercent": 30 } }
דוגמה 5
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feeAmount": { "currencyCode": "AUD", "units": 2, "nanos": 500000000 } }
דוגמה 6
{ "predefinedMessage": "FEE_CHARGED_TO_RESTAURANT_DISCLOSURE", "feeAmountRange": { "minFeeAmount": { "currencyCode": "AUD", "units": 2, "nanos": 500000000 }, "maxFeeAmount": { "currencyCode": "AUD", "units": 10, "nanos": 0 } } }
שגיאה
אלה הערכים האפשריים של הסוג Error
:
CLOSED
: המסעדה סגורה בזמן ההזמנה.NO_CAPACITY
: אין קיבולת זמינה בשירות (לדוגמה, הפסקה זמנית בשירות עקב שעות שיא).NO_COURIER_AVAILABLE
: לא ניתן לעבד את ההזמנה בגלל מחסור בשירותי משלוחים.REQUIREMENTS_NOT_MET
: לא בוצעו אילוצים לקבלת ההזמנה (לדוגמה, סכום קנייה מינימלי).UNAVAILABLE_SLOT
: לא ניתן למלא את ההזמנה מראש, כפי שצוין על ידי DeliveryInfo או CollectInfo.OUT_OF_SERVICE_AREA
: לא ניתן לשלוח את ההזמנה לכתובת של המשתמש.PROMO_EXPIRED
: לא ניתן היה להחיל את המבצע כי התוקף שלו פג.PROMO_NOT_APPLICABLE
: קוד שגיאה גנרי שמתייחס לכל המקרים של כשל במימוש קוד ההטבה, אם אף אחת מהשגיאות האחרות של קוד ההטבה לא מתאימה.PROMO_NOT_RECOGNIZED
: קוד השובר לא זוהה.PROMO_ORDER_INELIGIBLE
: לא ניתן להשתמש בשובר הזה בהזמנה הנוכחית.PROMO_USER_INELIGIBLE
: למשתמש הנוכחי אין זכאות לשובר הזה.AVAILABILITY_CHANGED
: הפריט כבר לא זמין או שאין מספיק פריטים כדי למלא את הבקשה.INCORRECT_PRICE
: שגיאות במחירים של עמלות או של סכום כולל.INVALID
: יש נתונים לא חוקיים ב-LineItem, ב-FulfillmentOption או בקידום מכירות.NOT_FOUND
: לא ניתן למצוא פריט שורה, אפשרות לטיפול בהזמנה או קידום מכירות.PRICE_CHANGED
: מחיר הפריט השתנה.
FeeAmountRange
בטבלה הבאה מפורטים המאפיינים של הסוג FeeAmountRange
:
נכס | סוג | תיאור | |
---|---|---|---|
minFeeAmount |
Money |
הערך התחתון של סכום העמלה שחויבת. |
|
maxFeeAmount |
Money |
הגבול העליון של סכום העמלה שחויב. |
FeePercentRange
בטבלה הבאה מפורטים המאפיינים של הסוג FeePercentRange
:
נכס | סוג | תיאור | |
---|---|---|---|
minFeePercent |
מספר |
הערך התחתון של אחוז העמלה שתחויב. |
|
maxFeePercent |
מספר |
הגבול העליון של שיעור העמלה שחויב. |
FoodCartExtension
מכיל פרטים על המשתמש, כמו העדפות למלאים.
בטבלה הבאה מפורטים המאפיינים של הסוג FoodCartExtension
:
נכס | סוג | תיאור | |
---|---|---|---|
@type |
Const |
סוג התוסף הזה. השדה הזה מוגדר תמיד כ-"type.googleapis.com/google.actions.v2.orders.FoodCartExtension". ערך: |
|
contact |
Contact |
פרטים ליצירת קשר עם מי שיקבל את ההזמנה. הפרטים כוללים את השם, מספר הטלפון וכתובת האימייל של האדם. |
|
fulfillmentPreference |
FulfillmentOption |
חובה. ההעדפה של המשתמש למילוי הזמנות. |
|
location |
Location |
בשדה הזה ב-CheckoutRequestMessage מצוין הכתובת למשלוח, שנדרשת אם ההזמנה היא למשלוח. בהזמנות של טייק אווי או איסוף עצמי, השדה הזה לא נכלל בהודעה. |
בדוגמה הבאה מוצג רכיב FoodCartExtension
:
דוגמה 1
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } }
דוגמה 2
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "contact": { "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" } }
FoodErrorExtension
מזהה שגיאה אחת או יותר שהתרחשו במהלך עיבוד בקשה. בטבלה הבאה מתוארים השדות של הסוגFoodErrorExtension
.
ניתן לשלוח שגיאות בקובץ CheckoutResponse
.
בטבלה הבאה מפורטים המאפיינים של הסוג FoodErrorExtension
:
נכס | סוג | תיאור | |
---|---|---|---|
@type |
Const | חובה. הסוג של התוסף. ערך: |
|
foodOrderErrors |
רשימה<FoodOrderError > |
חובה. מערך אובייקטים של FoodOrderError שמתארים את השגיאות שהתרחשו. מומלץ שגיאה אחת לכל עגלת קניות או לכל פריט. אפשר להזין עד פריט אחד. |
|
correctedProposedOrder |
ProposedOrder |
חובה כאשר:
הצעת הזמנה חדשה עם תיקונים. מחזירים את האובייקט הזה אם יש שגיאות שניתן לשחזר ב-ProposedOrder המקורי. לדוגמה, שינוי במחיר של פריט אחד או יותר בעגלת הקניות הוא שגיאה שניתן לתקן. שגיאות שניתן לתקן עם ProposedOrder תקין מועברות לשלב האישור, במקום לחייב את המשתמש לבדוק את עגלת הקניות. |
|
paymentOptions |
PaymentOptions |
חובה כאשר
אפשרויות התשלום שמוגדרות כברירת מחדל למשתמש. |
|
additionalPaymentOptions |
רשימה<PaymentOptions > |
אפשרויות תשלום חלופיות שזמינות למשתמש. |
בדוגמה הבאה מוצג רכיב FoodErrorExtension
:
דוגמה
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodErrorExtension", "foodOrderErrors": [ { "error": "PRICE_CHANGED", "id": "sample_item_offer_id_1", "description": "The price has changed.", "updatedPrice": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, { "error": "PRICE_CHANGED", "id": "sample_item_offer_id_2", "description": "The price has changed.", "updatedPrice": { "currencyCode": "USD", "units": "8" } } ], "correctedProposedOrder": { "id": "sample_corrected_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }, "paymentOptions": { "googleProvidedOptions": { "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:publishableKey": "pk_live_stripe_client_key", "stripe:version": "2017-04-06" } }, "supportedCardNetworks": [ "AMEX", "DISCOVER", "MASTERCARD", "JCB", "VISA" ], "prepaidCardDisallowed": true } } }
FoodItemExtension
מגדירה תוספים לפריטי מזון.
בטבלה הבאה מפורטים המאפיינים לסוג FoodItemExtension
:
נכס | סוג | תיאור | |
---|---|---|---|
@type |
Const | חובה. סוג התוסף הזה. השדה הזה מוגדר תמיד כ-"type.googleapis.com/google.actions.v2.orders.FoodItemExtension". ערך: |
|
options |
רשימה<FoodItemOption > |
אפשרות יכולה להיות פריט של תוסף או קבוצה של תוספים שמכילים קבוצה של תוספים. |
בדוגמה הבאה מוצג רכיב FoodItemExtension
:
דוגמה
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1, "subOptions": [ { "id": "10239138", "offerId": "912391723", "name": "Fries", "price": { "currencyCode": "USD", "units": "2", "nanos": 230000000 }, "quantity": 1 } ] } ] }
FoodItemOption
בטבלה הבאה מפורטים המאפיינים של הסוג FoodItemOption
:
נכס | סוג | תיאור | |
---|---|---|---|
id |
String |
מזהה ייחודי ש-Google הקצתה. כששולחים הודעת FoodOrderError או AsyncOrderUpdateRequest, משתמשים בשדה הזה כדי להבדיל בין מקרים שבהם עגלת הקניות מכילה יותר מפריט אחד עם אותו offerId. לדוגמה: |
|
offerId |
String |
מזהה המבצע של הפריט. לדוגמה: |
|
name |
String |
שם האפשרות. לדוגמה: |
|
price |
Money |
||
note |
String |
הערה לגבי האפשרות. |
|
quantity |
מספר |
לאפשרויות שהן פריטים, מספר הפריטים. לדוגמה: |
|
subOptions |
List<FoodItemOption > |
אפשרויות משנה של האפשרות, אם יש כאלה. לדוגמה: |
בדוגמה הבאה מוצג רכיב FoodItemOption
:
דוגמה 1
{ "id": "10293231", "offerId": "1918491", "name": "Honey Mustard", "price": { "currencyCode": "USD", "units": "1", "nanos": 250000000 }, "quantity": 5 }
דוגמה 2
{ "id": "123166552", "offerId": "912849184", "name": "Make It A Meal", "price": { "currencyCode": "USD", "units": "3", "nanos": 730000000 }, "quantity": 1, "subOptions": [ { "id": "10239138", "offerId": "912391723", "name": "Fries", "price": { "currencyCode": "USD", "units": "2", "nanos": 230000000 }, "quantity": 1 }, { "id": "57159183", "offerId": "81837123", "name": "Drink", "price": { "currencyCode": "USD", "units": "3", "nanos": 130000000 }, "quantity": 1 } ] }
FoodOrderError
מכיל פרטים על שגיאות ב-CheckoutResponse
.
בטבלה הבאה מפורטים המאפיינים לסוג FoodOrderError
:
נכס | סוג | תיאור | |
---|---|---|---|
error |
Error |
חובה. |
|
id |
String | חובה כאשר:
השדה הזה נדרש לשגיאות ברמת הפריט. זהו ה-LineItem.id שהוקצה על ידי Google לפריטי תפריט או ל-FoodItemOption.id לתוספים. |
|
description |
String |
תיאור השגיאה. התיאור הזה מיועד לצורכי רישום ביומן פנימי ולא גלוי למשתמשים. |
|
updatedPrice |
Money |
חובה כאשר
המחיר החדש של הפריט שגרם לשגיאה. השדה הזה נדרש רק כשהשגיאה היא PRICE_CHANGED. |
|
availableQuantity |
Integer | חובה כאשר
הכמות הזמינה החדשה של הפריט שגרמה לשגיאה. השדה הזה נדרש רק כשהשגיאה היא INVALID או NOT_FOUND. הערך צריך להיות אפס עבור "INVALID" ו-"NOT_FOUND". |
בדוגמה הבאה מוצג רכיב FoodOrderError
:
דוגמה 1
{ "error": "CLOSED", "description": "This store is currently reachable. Please try again later." }
דוגמה 2
{ "error": "PRICE_CHANGED", "id": "french_fries", "description": "The price has changed.", "updatedPrice": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }
FoodOrderExtension
מכיל פרטים על הכנת ההזמנה.
בטבלה הבאה מפורטים המאפיינים של הסוג FoodOrderExtension
:
נכס | סוג | תיאור | |
---|---|---|---|
@type |
Const |
סוג התוסף הזה. השדה הזה מוגדר תמיד כ-"type.googleapis.com/google.actions.v2.orders.FoodOrderExtension". ערך: |
|
availableFulfillmentOptions |
List<FulfillmentOption > |
מייצג את אפשרויות המילוי הזמינות של ההזמנה. |
|
optinForRemarketing |
בוליאני |
בקשה של משתמש להצטרף לערוצי השיווק שלכם. כברירת מחדל, אי אפשר לשלוח תוכן שיווקי בלי הסכמת המשתמש. אם הערך של optinForRemarketing הוא True, אפשר להירשם את המשתמש. אם הערך של optinForRemarketing הוא false או שהוא לא קיים, עליכם להשאיר את סטטוס המינוי במערכת כפי שהוא. המשתמשים לא יכולים לבטל את ההסכמה דרך Google, אלא רק דרך פונקציית ביטול המינוי שזמינה בערוצי השיווק שלכם. הדגל הזה מופיע רק ב-SubmitOrderRequestMessage. |
בדוגמה הבאה מוצג רכיב FoodOrderExtension
:
דוגמה 1
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] }
דוגמה 2
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2020-08-20T11:41:00Z" } ], "optinForRemarketing": true }
FulfillmentOption
אפשר להשתמש באובייקטFulfillmentOption
בדרכים הבאות:
-
ב-
Checkout AppRequest
וב-Submit AppRequest
, הערךCart.extension.fulfillmentPreference
: שומר את ההעדפה של המשתמש (משלוח או איסוף). המחיר הוא תמיד 0 כשבקשת התשלום נשלחת. -
ב-
Checkout AppResponse
, הערךProposedOrder.extension.availableFulfillmentOptions
: מגדיר אפשרות משלוח אחת או יותר (כרגע יש תמיכה רק באפשרות אחת). אפשרות ברירת המחדל מצוינה כ-LineItem
בקובץProposedOrder.otherItems
. השדהofferId
שלFulfillmentOption
צריך להתאים למזהה שלLineItem
שצוין ב-ProposedOrder.otherItems
.
בטבלה הבאה מפורטים המאפיינים של הסוג FulfillmentOption
:
נכס | סוג | תיאור | |
---|---|---|---|
offerId |
String |
מזהה ייחודי של אפשרות המילוי הזו, אם יש כזו. |
|
fulfillmentInfo |
FulfillmentOptionInfo |
חובה. |
|
expiresAt |
חותמת זמן לפי תקן ISO |
השעה שבה יפוג התוקף של אפשרות מילוי ההזמנה הזו. |
|
price |
Money |
העלות של האפשרות הזו. |
בדוגמה הבאה מוצג רכיב FulfillmentOption
:
דוגמה
{ "offerId": "offer5", "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2019-05-02T00:00:00-07:00", "price": { "currencyCode": "USD", "units": "5", "nanos": 230000000 } }
FulfillmentOptionInfo
מגדיר מידע שקשור אלFulfillmentInfo
.
בטבלה הבאה מפורטים המאפיינים לסוג FulfillmentOptionInfo
:
נכס | סוג | תיאור | |
---|---|---|---|
צריך לציין בדיוק אחת מהקבוצות הבאות של מאפיינים. | |||
delivery |
קבוצה 1 | DeliveryInfo |
אם השדה הזה מופיע, המשמעות היא שמדובר בהזמנה למשלוח. |
pickup |
קבוצה 2 | PickupInfo |
אם השדה הזה מופיע, המשמעות היא שמדובר בהזמנה לאיסוף. |
תמונה
בטבלה הבאה מפורטים המאפיינים של הסוג Image
:
נכס | סוג | תיאור | |
---|---|---|---|
sourceUrl |
String | חובה. כתובת ה-URL של התמונה. התמונה צריכה להיות בגודל 72x72 פיקסלים לפחות. כדי לקבל את התוצאות הטובות ביותר, מומלץ להשתמש בתמונה בגודל של 216x216 פיקסלים לפחות. התמונה צריכה להיות קטנה מ-6MB וקטנה מ-64 מגה-פיקסל. |
LineItem
הגדרת התוכן של עגלת הקניות (Cart.lineItems
) או חיובים נוספים על הזמנה (ProposedOrder.otherItems
).
בטבלה הבאה מפורטים המאפיינים של הסוג LineItem
:
נכס | סוג | תיאור | |
---|---|---|---|
id |
String | חובה כאשר
לפריט LineItem בעגלת קניות (ProposedOrder.cart.lineItems[0].id), זהו המזהה הייחודי שנוצר על ידי Google בזמן יצירת ההזמנה. עבור פריט ב-ProposedOrder (ProposedOrder.otherItems[0].id), שמשמש להוספת פריטים כמו עמלות משלוח ומיסים, הערך של id מוגדר על ידי הספק. לדוגמה, בעגלת הקניות יש שני פריטים זהים עם הוראות הכנה שונות (למשל, שתי פיצות בינוניות עם קבוצות שונות של תוספות). במקרה כזה, לשני הפריטים יש את אותו base offerId. כששולחים בקשה לעדכון הזמנה כדי לציין שפריט נדחה, צריך להשתמש במזהה הזה כגורם להסרת הבלבול. במילים אחרות, אם אחת מהפיצות נדחתה כי חסר בה תוספת מסוימת, המזהה עוזר ל-Google לקבוע לאיזה פריט בהזמנה אתם מתכוונים. השדה הזה הוא חובה, מלבד ב-otherItems. |
|
name |
String | חובה. שם הפריט. זוהי מחרוזת שגלויה למשתמש, ויש להשתמש בה בהטיית משפט ככל האפשר (למשל, 'דמי משלוח', 'חיוב שירות', 'מיסים'). השדה הזה נחתך ב-100 תווים למשתמשים. |
|
type |
LineItemType |
חובה. |
|
quantity |
Integer | חובה כאשר:
מספר הפריטים הכלולים. לא רלוונטי ל-ProposedOrder.otherItems. |
|
description |
String |
תיאור הפריט. |
|
price |
Price |
חובה. המחיר של הפריט או הפריטים. הערך הזה משקף את המחיר הכולל של כל המוצרים או השירותים בפריט הזה (כלומר, מוסיפים את העלות של כל התוספים ומכפילים במספר). לדוגמה: אם הכמות של פריט שעולה 10 $ היא 3, המחיר יהיה 30 $. פיצה אחת עם מחיר בסיסי של 5 $ו-1 $תוספת תעלה 6$. אם רוצים לקנות שתי פיצות (כמות = 2) במחיר בסיסי של 5$, עם תוספת של 1 $לכל פיצה, המחיר הכולל יהיה 12$. לכל פריט צריך להיות מחיר, גם אם המחיר הוא '0'. כשהסוג הוא DISCOUNT, מציינים את הערך כשלילי (לדוגמה, '2-'). |
|
subLines |
List<SublineNote > |
אופציונלי ותקף רק אם הסוג הוא 'רגיל'. המשתמש יכול לשלוח הערה ספציפית לפריט בשדה הזה בבקשה לתשלום ובבקשה לשליחת ההזמנה. חשוב לוודא שהמוכר מקבל את ההערה כששולחים אותה. הערך יופיע בבקשה בתור SubLines[0].note, שהוא הערך היחיד בשדה הזה כשהוא מופיע בבקשה. התפריט יכול להכיל פריט אחד בלבד. |
|
offerId |
String | חובה כאשר:
מזהה המבצע של MenuItem של הפריט. לא רלוונטי ל-ProposedOrder.otherItems. |
|
extension |
FoodItemExtension |
מגדיר תוספים לפריטי מזון. |
בדוגמה הבאה מוצג רכיב LineItem
:
דוגמה 1
{ "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }
דוגמה 2
{ "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }
LineItemType
אלה הערכים האפשריים של הסוג LineItemType
:
REGULAR
: פריט של סחורה. רלוונטי ל-Cart.lineItems.TAX
: פריט מס. רלוונטי ל-ProposedOrder.otherItems.DISCOUNT
: פריט הנחה. חשוב לזכור שהמחיר צריך להיות שלילי. רלוונטי ל-ProposedOrder.otherItems.GRATUITY
: פריט תשלום על תשר. בדרך כלל שמור להודעה SubmitOrderRequestMessage עבור טיפ שנבחר על ידי המשתמש. רלוונטי ל-ProposedOrder.otherItems.DELIVERY
: פריט מסירה. רלוונטי ל-ProposedOrder.otherItems.SUBTOTAL
: פריט סכום ביניים. רלוונטי ל-ProposedOrder.otherItems.FEE
: פריט נוסף שלא נכלל בסוגי הפריטים האחרים. רלוונטי ל-ProposedOrder.otherItems.
מיקום
מציין כתובת להזמנת אוכל. הסוגLocation
משמש ב-Cart
כדי לציין את היעד של הזמנת משלוח בלבד.
המיקום הסופי יופיע גם ב-TransactionDecisionValue
אם המשתמש מבצע את ההזמנה. בהזמנות שבהן צוין איסוף, לא מופיע מיקום בכלל (גם לא מיקום ריק).
בטבלה הבאה מפורטים המאפיינים של הסוג Location
:
נכס | סוג | תיאור | |
---|---|---|---|
coordinates |
Coordinates |
||
formattedAddress |
String |
הצגת הכתובת של המיקום. לדוגמה: |
|
postalAddress |
PostalAddress |
||
zipCode |
String |
לדוגמה: |
|
city |
String |
שם העיר. לדוגמה: |
|
notes |
String |
הערות לגבי המיקום, כמו קודים לשערים. השם צריך לכלול 500 תווים לכל היותר. לדוגמה: |
בדוגמה הבאה מוצג רכיב Location
:
דוגמה
{ "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" }
מוֹכר
בטבלה הבאה מפורטים המאפיינים לסוג Merchant
:
נכס | סוג | תיאור | |
---|---|---|---|
id |
String |
המספר המזהה של המוכר. אם צוין, המערכת תתאים ל-Restaurant.@id בפיד 'מסעדות'. לדוגמה: |
|
name |
String | חובה. שם המוכר הגלוי למשתמש. לדוגמה: |
בדוגמה הבאה מוצג רכיב Merchant
:
דוגמה
{ "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }
כסף
בטבלה הבאה מפורטים המאפיינים של הסוג Money
:
נכס | סוג | תיאור | |
---|---|---|---|
currencyCode |
String | חובה. קוד מטבע בן 3 אותיות בפורמט ISO 4217. לדוגמה: |
|
units |
String |
מספר היחידות השלמות של הסכום. לדוגמה: אם הערך של קוד המטבע 'currencyCode' הוא 'USD', המשמעות היא ש-'1' יחידה = דולר ארה"ב אחד. לדוגמה: |
|
nanos |
Integer |
מספר יחידות הננו (10^-9) של הסכום. הערך חייב להיות בין -999,999,999 ל- +999,999,999, כולל. פועלים לפי הכללים הבאים: אם הערך של היחידות השלמות הוא חיובי, מספר יחידות הננו חייב להיות חיובי או אפס. אם מספר היחידות השלמות הוא אפס, מספר יחידות הננו יכול להיות חיובי, אפס או שלילי. אם מספר היחידות השלמות הוא שלילי, הערך של יחידות הננו חייב להיות שלילי או אפס. לדוגמה, $-1.75 מיוצג באמצעות יחידות = 1- ו-ננוs = -750,000,000. לדוגמה: |
בדוגמה הבאה מוצג רכיב Money
:
דוגמה 1
{ "currencyCode": "USD", "units": "36", "nanos": 730000000 }
דוגמה 2
{ "currencyCode": "EUR", "units": "10" }
הזמנה
מכיל את ההזמנה הסופית, כולל מיסים, עמלות ודמי משלוח, וגם את פרטי התשלום. הפעולה שלכם תקבל את האובייקט הזה ב-Submit AppRequest
.
בטבלה הבאה מפורטים המאפיינים של הסוג Order
:
נכס | סוג | תיאור | |
---|---|---|---|
finalOrder |
ProposedOrder |
חובה. ההזמנה המוצעת שגרמה להזמנה. |
|
googleOrderId |
String | חובה. מזהה ההזמנה ש-Google הקצתה. המזהה הזה צריך להיות קבוע לכל מחזור החיים של הזמנה. המזהה הזה לא גלוי למשתמשי הקצה. |
|
orderDate |
חותמת זמן לפי תקן ISO | חובה. התאריך והשעה שבהם ההזמנה נוצרה. |
|
paymentInfo |
PaymentInfo |
חובה. פרטי התשלום שתואמים לתשלום על ההזמנה הזו. |
בדוגמה הבאה מוצג רכיב Order
:
דוגמה
{ "finalOrder": { "cart": { "notes": "Guest prefers their food to be hot when it is delivered.", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "contact": { "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" } } }, "otherItems": [ { "name": "Service fee", "type": "FEE", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } } }, { "name": "Tax", "type": "TAX", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 370000000 } } }, { "name": "Tip", "type": "GRATUITY", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 590000000 } } } ], "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "23", "nanos": 710000000 } }, "id": "sample_final_order_id", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ], "optinForRemarketing": true } }, "googleOrderId": "sample_google_order_id", "orderDate": "2017-07-17T12:00:00Z", "paymentInfo": { "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd" }, "paymentType": "PAYMENT_CARD" } }
OrderUpdate
בטבלה הבאה מתוארים השדות של סוג OrderUpdate שכלולים ב-AppResponse
.
בטבלה הבאה מפורטים המאפיינים של הסוג OrderUpdate
:
נכס | סוג | תיאור | |
---|---|---|---|
actionOrderId |
String | חובה. המזהה הייחודי של ההזמנה במערכת של המשתמש המאחד, שמשמש לזיהוי ההזמנה שאליה נשלח העדכון. אם לא תספקו את receipt.user_visible_order_id לפחות פעם אחת ב-OrderUpdate עבור הזמנה בסטטוס 'נוצרה', המזהה הזה יהיה המזהה הגלוי למשתמש שהוזן ומוצג בכרטיס ההזמנה ב-Google. |
|
orderState |
OrderState |
חובה. המצב החדש של ההזמנה. |
|
lineItemUpdates |
Map<String, LineItemUpdate > |
||
updateTime |
חותמת זמן לפי תקן ISO | חובה. השעה שבה ההזמנה עודכנה. |
|
orderManagementActions |
List<OrderManagementAction > |
פעולות לאחר ביצוע ההזמנה, כמו פנייה לתמיכה וצפייה בפרטים של ההזמנה. הרשימה צריכה להכיל לפחות פריט אחד ולא יותר מ-6 פריטים. |
|
rejectionInfo |
RejectionInfo |
חובה כאשר
|
|
cancellationInfo |
CancellationInfo |
חובה כאשר
|
|
inTransitInfo |
InTransitInfo |
השדה הזה הוצא משימוש. |
|
fulfillmentInfo |
FulfillmentInfo |
השדה הזה הוצא משימוש. |
|
receipt |
Receipt |
חובה כאשר
לציין את מזהה ההזמנה שגלוי למשתמש בקבלה. |
|
totalPrice |
Price |
המחיר הכולל של ההזמנה. |
|
infoExtension |
FoodOrderUpdateExtension |
מגדיר פרטים נוספים על עדכון ההזמנה, כמו מרווח הזמן המשוער למסירה או לאיסוף. |
בדוגמה הבאה מוצג רכיב OrderUpdate
:
דוגמה
{ "actionOrderId": "sample_action_order_id", "orderState": { "state": "CONFIRMED", "label": "Provider confirmed" }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "41", "nanos": 600000000 } }, "lineItemUpdates": { "sample_item_id_1": { "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "reason": "This item has an updated price." } }, "receipt": { "userVisibleOrderId": "userVisibleId1234" }, "updateTime": "2017-07-17T12:00:00Z", "orderManagementActions": [ { "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }, { "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }, { "type": "CALL_RESTAURANT", "button": { "title": "Call restaurant", "openUrlAction": { "url": "tel:+16505554679" } } } ], "infoExtension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z" } }
PickupInfo
בטבלה הבאה מפורטים המאפיינים של הסוג PickupInfo
:
נכס | סוג | תיאור | |
---|---|---|---|
pickupTimeIso8601 |
String |
זמן האיסוף המשוער, בפורמט חותמת זמן לפי תקן ISO 8601: "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" או הפורמט של משך הזמן: "P(n)Y(n)M(n)DT(n)H(n)M(n)S". לדוגמה, PT90M מייצג משך זמן של 90 דקות. ערך ברירת המחדל ,'PT0M', מציין שזמן האיסוף המועדף הוא בהקדם האפשרי. מקור: https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations. אפשר להשתמש באפשרות הזו כדי לעדכן את שעת האיסוף המשוערת בתשובה לתשלום. לדוגמה: |
בדוגמה הבאה מוצג רכיב PickupInfo
:
דוגמה
{ "pickupTimeIso8601": "PT90M" }
PostalAddress
בטבלה הבאה מפורטים המאפיינים של הסוג PostalAddress
:
נכס | סוג | תיאור | |
---|---|---|---|
regionCode |
String | חובה. קוד מדינה בן שתי אותיות. לדוגמה: |
|
postalCode |
String |
המיקוד. לדוגמה: |
|
administrativeArea |
String |
הרמה המנהלית הגבוהה ביותר שמשמשת לכתובות דואר של מדינה או אזור. סוג זה יכול להיות מדינה, מחוז, אובלסט או מחוז. לדוגמה: |
|
locality |
String |
העיר או העיירה של המיקום הזה. באזורים בעולם שבהם היישובים לא מוגדרים בצורה ברורה או לא מתאימים למבנה הזה, אין לציין את היישוב, אלא להשתמש בשדה addressLines במקום זאת. לדוגמה: |
|
addressLines |
List<String> |
שורה אחת או יותר שבהן ניתן להשתמש כדי לציין את הכתובת. אין לשנות את השדה הזה כי הוא עשוי להכיל מקומות לא ברורים. לדוגמה: |
|
recipients |
List<String> |
רשימת נמענים של הזמנה. השדה הזה זמין רק ב-billingAddress. |
בדוגמה הבאה מוצג רכיב PostalAddress
:
דוגמה
{ "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }
מחיר
בטבלה הבאה מפורטים המאפיינים של הסוג Price
:
נכס | סוג | תיאור | |
---|---|---|---|
type |
Enum [
"ESTIMATE",
"ACTUAL"
] |
חובה. קוד שובר הפרסום. |
|
amount |
Money |
חובה. |
קידום מכירות
בטבלה הבאה מפורטים המאפיינים לסוג Promotion
:
נכס | סוג | תיאור | |
---|---|---|---|
coupon |
String | חובה. קוד השובר של המבצע. |
ProposedOrder
בטבלה הבאה מפורטים המאפיינים של הסוג ProposedOrder
:
נכס | סוג | תיאור | |
---|---|---|---|
id |
String |
מזהה אופציונלי להזמנה המוצעת. |
|
cart |
Cart |
חובה. הפריטים של המשתמש. |
|
otherItems |
List<LineItem > |
פריטים שנוספו על ידי הספק, כמו דמי משלוח, עמלות אחרות ומיסים. האפשרות otherItems עשויה לכלול גם תשר ו/או הנחה שנוספו על ידי המשתמש. לא יכולים להיות יותר מ-10 פריטים. |
|
image |
Image |
תמונה שמשויכת להזמנה המוצעת. |
|
totalPrice |
Price |
חובה. המחיר הכולל של ההזמנה המוצעת. |
|
extension |
FoodOrderExtension |
חובה. הגדרת פרטי מילוי ההזמנות של הזמנות ממסעדות. |
|
disclaimers |
רשימה<Disclaimer > |
תואמת להודעות כתבי ויתור שיוצגו בממשק המשתמש לפני ביצוע ההזמנה. |
בדוגמה הבאה מוצג רכיב ProposedOrder
:
דוגמה
{ "id": "sample_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }
SublineNote
בטבלה הבאה מפורטים המאפיינים לסוג SublineNote
:
נכס | סוג | תיאור | |
---|---|---|---|
note |
String | חובה. |
חותמת זמן
התאריך והשעה, בפורמט הבא:
"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
TransactionDecisionValue
מכיל אתOrder
.
בטבלה הבאה מפורטים המאפיינים של הסוג TransactionDecisionValue
:
נכס | סוג | תיאור | |
---|---|---|---|
order |
Order |
חובה. צריך להזמין את ההזמנה ולציין את פרטי התשלום. |
בדוגמה הבאה מוצג רכיב TransactionDecisionValue
:
דוגמה
{ "order": { "finalOrder": { "cart": { "notes": "Guest prefers their food to be hot when it is delivered.", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "contact": { "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" } } }, "otherItems": [ { "name": "Service fee", "type": "FEE", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } } }, { "name": "Tax", "type": "TAX", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 370000000 } } }, { "name": "Tip", "type": "GRATUITY", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 590000000 } } } ], "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "23", "nanos": 710000000 } }, "id": "sample_final_order_id", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ], "optinForRemarketing": true } }, "googleOrderId": "sample_google_order_id", "orderDate": "2017-07-17T12:00:00Z", "paymentInfo": { "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd" }, "paymentType": "PAYMENT_CARD" } } }
בקשה לטיפול בהזמנה
AppRequest
בטבלה הבאה מפורטים המאפיינים של הסוג AppRequest
:
נכס | סוג | תיאור | |
---|---|---|---|
isInSandbox |
בוליאני |
מציין אם העסקאות הבאות מתבצעות בסביבת ארגז חול. |
|
conversation |
Conversation |
||
inputs |
List<Input > |
חובה. מכיל את הארגומנטים הצפויים לביצוע תשלום על עגלת קניות. חייב להיות בה פריט אחד בלבד. |
בדוגמה הבאה מוצג רכיב AppRequest
:
דוגמה 1
{ "isInSandbox": true, "inputs": [ { "intent": "actions.foodordering.intent.CHECKOUT", "arguments": [ { "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.Cart", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } } } ] } ] }
דוגמה 2
{ "isInSandbox": true, "inputs": [ { "intent": "actions.intent.TRANSACTION_DECISION", "arguments": [ { "transactionDecisionValue": { "order": { "finalOrder": { "cart": { "notes": "Guest prefers their food to be hot when it is delivered.", "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Cucina Venti" }, "lineItems": [ { "name": "Sizzling Prawns Dinner", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "16", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "contact": { "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" } } }, "otherItems": [ { "name": "Service fee", "type": "FEE", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } } }, { "name": "Tax", "type": "TAX", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 370000000 } } }, { "name": "Tip", "type": "GRATUITY", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 590000000 } } } ], "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "23", "nanos": 710000000 } }, "id": "sample_final_order_id", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ], "optinForRemarketing": true } }, "googleOrderId": "sample_google_order_id", "orderDate": "2017-07-17T12:00:00Z", "paymentInfo": { "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd" }, "paymentType": "PAYMENT_CARD" } } } } ] } ] }
CheckoutRequestMessage
CheckoutRequestMessage
הוא AppRequest
עם הכוונה actions.foodordering.intent.CHECKOUT
.
SubmitOrderRequestMessage
SubmitOrderRequestMessage
הוא AppRequest
עם הכוונה actions.foodordering.intent.TRANSACTION_DECISION
.
שיחה
Conversation
הוא ייחודי לסשן אחד בלבד. אפשר להשתמש בו כדי לקשר כמה פעולות Checkout
ו-SubmitOrder
יחד, לפי הצורך.
בטבלה הבאה מפורטים המאפיינים של הסוג Conversation
:
נכס | סוג | תיאור | |
---|---|---|---|
conversationId |
String | חובה. מזהה ייחודי של השיחה. |
בדוגמה הבאה מוצג רכיב Conversation
:
דוגמה
{ "conversationId": "CQnJ7Z4i7UmvEZ9ph3AxyZRJ" }
קלט
הארגומנטים הצפויים לבדיקה של עגלת הקניות.
בטבלה הבאה מפורטים המאפיינים לסוג Input
:
נכס | סוג | תיאור | |
---|---|---|---|
intent |
Enum [
"actions.foodordering.intent.CHECKOUT",
"actions.intent.TRANSACTION_DECISION"
] |
חובה. צריך להגדיר את הערך 'actions.foodordering.intent.CHECKOUT' להודעה של בקשת התשלום או 'actions.intent.TRANSACTION_DECISION' עבור ההודעה של שליחת הבקשה להזמנה. |
|
arguments |
List<Argument > |
חובה. מכיל את עגלת הקניות שרוצים לשלם עליה או את ההזמנה שרוצים לבצע חייב להיות בה פריט אחד בלבד. |
ארגומנט
כוללים פרטים על פריטי המזון שהמשתמש רוצה לשלם. בתשלום, רק התוסף רלוונטי. בשליחת הזמנה, רק transactionDecisionValue רלוונטי
בטבלה הבאה מפורטים המאפיינים של הסוג Argument
:
נכס | סוג | תיאור | |
---|---|---|---|
צריך לציין בדיוק אחת מהקבוצות הבאות של מאפיינים. | |||
extension |
קבוצה 1 | Cart |
כאן אפשר לראות פרטים על פריטי המזון שהמשתמש רוצה לשלם. |
transactionDecisionValue |
קבוצה 2 | TransactionDecisionValue |
מכילה את ההזמנה שרוצים לבצע ואת פרטי התשלום. |
תגובה לטיפול בהזמנה
AppResponse
בטבלה הבאה מפורטים המאפיינים של הסוג AppResponse
:
נכס | סוג | תיאור | |
---|---|---|---|
expectUserResponse |
Const |
מוגדר כ-false. ערך: |
|
finalResponse |
FinalResponse |
חובה. מכילה את התגובה שלכם לשלב התשלום בעגלת הקניות. |
בדוגמה הבאה מוצג רכיב AppResponse
:
דוגמה 1
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "structuredResponse": { "checkoutResponse": { "proposedOrder": { "id": "sample_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }, "paymentOptions": { "googleProvidedOptions": { "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\": false }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" } }, "additionalPaymentOptions": [ { "actionProvidedOptions": { "paymentType": "ON_FULFILLMENT", "displayName": "Cash on delivery." } } ] } } } ] } } }
דוגמה 2
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "structuredResponse": { "orderUpdate": { "actionOrderId": "sample_action_order_id", "orderState": { "state": "CONFIRMED", "label": "Provider confirmed" }, "receipt": { "userVisibleOrderId": "userVisibleId1234" }, "updateTime": "2017-07-17T12:00:00Z", "orderManagementActions": [ { "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }, { "type": "CUSTOMER_SERVICE", "button": { "title": "Call customer service", "openUrlAction": { "url": "tel:+18005554679" } } }, { "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }, { "type": "CALL_RESTAURANT", "button": { "title": "Call restaurant", "openUrlAction": { "url": "tel:+16505554679" } } } ], "infoExtension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z" } } } } ] } } }
דוגמה 3
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "structuredResponse": { "error": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodErrorExtension", "foodOrderErrors": [ { "error": "CLOSED", "description": "The restaurant is closed." } ] } } } ] } } }
דוגמה 4
{ "expectUserResponse": false, "finalResponse": { "richResponse": { "items": [ { "structuredResponse": { "checkoutResponse": { "proposedOrder": { "otherItems": [ { "name": "Delivery Fees", "subLines": [], "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "subLines": [], "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 370000000 } }, "type": "TAX" }, { "name": "Promotion", "subLines": [], "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": 0 } }, "id": "OWG_ACTIVE_CODE", "type": "DISCOUNT" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "promotions": [ { "coupon": "OWG_ACTIVE_CODE" } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "14", "nanos": 860000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } }, "expiresAt": "2018-04-10T01:20:08.471Z" } ] } }, "paymentOptions": { "googleProvidedOptions": { "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:publishableKey": "pk_live_stripe_client_key", "stripe:version": "2017-04-06" } }, "supportedCardNetworks": [ "AMEX", "DISCOVER", "MASTERCARD", "VISA", "JCB" ], "prepaidCardDisallowed": true, "billingAddressRequired": true } } } } } ] } } }
CheckoutResponseMessage
CheckoutResponseMessage
הוא AppResponse
עם checkoutResponse
או error
ב-StructuredResponse
.
SubmitOrderResponseMessage
SubmitOrderResponseMessage
הוא AppResponse
עם orderUpdate
ב-StructuredResponse
.
FinalResponse
התשובה שלכם לדף התשלום בעגלת הקניות או להודעה SubmitOrderRequestMessage.
בטבלה הבאה מפורטים המאפיינים של הסוג FinalResponse
:
נכס | סוג | תיאור | |
---|---|---|---|
richResponse |
RichResponse |
חובה. מכילה את התשובה שלכם להודעה CheckoutRequestMessage או SubmitOrderRequestMessage. |
CheckoutResponse
בטבלה הבאה מפורטים המאפיינים של הסוג CheckoutResponse
:
נכס | סוג | תיאור | |
---|---|---|---|
proposedOrder |
ProposedOrder |
חובה. ההזמנה המוצעת לשימוש בעסקה. |
|
paymentOptions |
PaymentOptions |
חובה. אפשרות התשלום שמוגדרת כברירת מחדל למשתמש. |
|
additionalPaymentOptions |
List<PaymentOptions > |
אפשרויות תשלום חלופיות שזמינות למשתמש. |
בדוגמה הבאה מוצג רכיב CheckoutResponse
:
דוגמה
{ "proposedOrder": { "id": "sample_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }, "paymentOptions": { "googleProvidedOptions": { "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\": false }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" } }, "additionalPaymentOptions": [ { "actionProvidedOptions": { "paymentType": "ON_FULFILLMENT", "displayName": "Cash on delivery." } } ] }
פריט
מכילה את התגובה שלך לדף תשלום בעגלת הקניות או ל-SubmitOrderRequestMessage.
בטבלה הבאה מפורטים המאפיינים של הסוג Item
:
נכס | סוג | תיאור | |
---|---|---|---|
structuredResponse |
StructuredResponse |
חובה. |
RichResponse
מכיל את התשובה שלכם לתשלום בעגלת הקניות.
בטבלה הבאה מפורטים המאפיינים של הסוג RichResponse
:
נכס | סוג | תיאור | |
---|---|---|---|
items |
List<Item > |
חובה. חייב להיות בה פריט אחד בלבד. |
StructuredResponse
בשדה CheckoutResponseMessage, אפשר להשתמש באחד מהערכים הבאים: CheckoutResponse מציין שהתשלום בוצע בהצלחה. OR FoodErrorExtension: מציין כשל במהלך התשלום בקופה. התגובה עשויה לכלול הצעה מתוקנת ו-ProposedOrder ו-PaymentOptions, או הודעת שגיאה ללא PaymentOptions. עבור SubmitOrderResponseMessage, רק orderUpdate רלוונטי.
בטבלה הבאה מפורטים המאפיינים של הסוג StructuredResponse
:
נכס | סוג | תיאור | |
---|---|---|---|
צריך לציין בדיוק אחת מהקבוצות הבאות של מאפיינים. | |||
checkoutResponse |
קבוצה 1 | CheckoutResponse |
פריטים שנבחרו, כולל מיסים והנחות. |
error |
קבוצה 2 | FoodErrorExtension |
שגיאות שנמצאו בפריטים בעגלת הקניות. בהתאם לאופי השגיאה, המאפיין הזה יכול לכלול הצעה מתוקנת ו-ProposedOrder ו-PaymentOptions, או הודעת שגיאה ללא PaymentOptions. |
orderUpdate |
קבוצה 3 | OrderUpdate |
עדכונים אסינכרונים של הזמנות
בקטע הזה מתוארים הסוגים ברמה גבוהה שמרכיבים את הבקשות והתשובות של אינטראקציה אופיינית של פעולה מובנית להזמנת אוכל.AsyncOrderUpdateRequestMessage
שליחת התראות למשתמש על שינויים, אחרי שליחת ההזמנה ואישורה. לדוגמה, אפשר להודיע למשתמש שההזמנה בדרך או שהמחיר השתנה. למידע נוסף, ראהבטבלה הבאה מפורטים המאפיינים של הסוג AsyncOrderUpdateRequestMessage
:
נכס | סוג | תיאור | |
---|---|---|---|
isInSandbox |
בוליאני |
מציין שההזמנה שלגביה נשלח העדכון הזה היא תשלום בסביבת חול. |
|
customPushMessage |
CustomPushMessage |
חובה. מכיל את OrderUpdate עבור הבקשה. |
בדוגמה הבאה מוצג רכיב AsyncOrderUpdateRequestMessage
:
דוגמה
{ "isInSandbox": true, "customPushMessage": { "orderUpdate": { "actionOrderId": "sample_action_order_id", "orderState": { "state": "IN_TRANSIT", "label": "Order is on the way" }, "inTransitInfo": { "updatedTime": "2017-07-17T12:00:00Z" }, "updateTime": "2017-07-17T12:00:00Z", "receipt": { "userVisibleOrderId": "userVisibleId1234" }, "orderManagementActions": [ { "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }, { "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }, { "type": "CALL_RESTAURANT", "button": { "title": "Call restaurant", "openUrlAction": { "url": "tel:+16505554679" } } } ], "infoExtension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z" } } } }
AsyncOrderUpdateResponseMessage
אחרי ששולחים בקשה מסוגAsyncOrderUpdateRequestMessage
, Google משיבה עם סטטוס HTTP 200 וגוף ריק. אם העדכון לא יצליח, Google תחזיר תשובה עם פרטים על הסיבה לכך.
סוגי עדכונים להזמנה
לחצן
הגדרת רכיב של ממשק המשתמש שאפשר להוסיף כדי לספק אינטראקציה עם המשתמש.
בטבלה הבאה מפורטים המאפיינים של הסוג Button
:
נכס | סוג | תיאור | |
---|---|---|---|
title |
String | חובה. תווית התצוגה. כדי להבטיח עיבוד תקין, יש להשתמש באותיות גדולות בתחילת המשפט (באנגלית) באורך 30 תווים לכל היותר. לדוגמה: |
|
openUrlAction |
OpenUrlAction |
חובה. |
בדוגמה הבאה מוצג רכיב Button
:
דוגמה
{ "title": "Send us feedback", "openUrlAction": { "url": "mailto:person@example.com" } }
CancellationInfo
בטבלה הבאה מפורטים המאפיינים של הסוג CancellationInfo
:
נכס | סוג | תיאור | |
---|---|---|---|
reason |
String | חובה. סיבת הטקסט המוצג לדחייה כאשר OrderState.state הוא "CANCELLED". לדוגמה: |
בדוגמה הבאה מוצג רכיב CancellationInfo
:
דוגמה
{ "reason": "Insufficient inventory" }
FoodOrderUpdateExtension
הסוג הזה מספק למשתמש טווח זמן משוער שבו ההזמנה תימסר או תהיה מוכנה לאיסוף. שולחים את התוסף הזה באימייל OrderUpdate
בכל פעם שהמידע זמין או השתנה מאז השליחה האחרונה.
מומלץ לספק הערכה שמרנית של מרווח זמן האספקה כדי לעמוד בציפיות של המשתמשים באופן עקבי. לדוגמה, אם זמן האספקה המשוער של ההזמנה הוא היום בשעה 13:00, צריך לשלוח טווח זמן משוער שמתאים לשינויים עקב תנאי התנועה, למשל היום בשעה 12:45 עד 13:15.
משך זמן או חותמת זמן בפורמט ISO 8601 מפורשים כמספר הימים מ-updateTime
של OrderUpdate
(למעשה, 'עכשיו') עד updateTime
פלוס duration
.
אל תשתמשו בפורמט הזה אלא אם 'עכשיו' הוא אכן צפי סביר.
המשמעות של מרווח לפי תקן ISO 8601 היא המרווח מההתחלה עד הסוף של המרווח.
בטבלה הבאה מפורטים המאפיינים לסוג FoodOrderUpdateExtension
:
נכס | סוג | תיאור | |
---|---|---|---|
@type |
Const |
הסוג של התוסף. השדה הזה מוגדר תמיד כ-"type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension". ערך: |
|
estimatedFulfillmentTimeIso8601 |
String |
המועד המשוער שבו ההזמנה תימסר או תהיה מוכנה לאיסוף. המחרוזת צריכה להיות בפורמט ISO 8601 והיא צריכה להתאים למרווח זמן ולא לזמן קבוע אחד. המוסכמות המקובלות הן: הפוגות, משכי זמן ותאריכים/שעות. אפשר לשלוח את השדה הזה ב-SubmitOrderResponseMessage או ב-AsyncOrderUpdateRequestMessage כשהמידע זמין או כשיש שינוי, למשל הגעה מוקדמת או מושהית. לדוגמה: |
|
foodOrderErrors |
List<FoodOrderError > |
תיאור השגיאות שהתרחשו לאחר ההזמנה. מומלץ להציג שגיאה אחת לכל עגלת קניות או לכל פריט. משתמשים ב-FoodOrderUpdateExtension.FoodOrderErrors לכל שגיאה שלא מכוסה על ידי RejectionInfo. חייב להכיל לפחות פריט אחד. |
בדוגמה הבאה מוצג רכיב FoodOrderUpdateExtension
:
דוגמה 1
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "estimatedFulfillmentTimeIso8601": "2017-07-17T13:00:00Z/2017-07-17T13:30:00Z" }
דוגמה 2
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension", "foodOrderErrors": [ { "error": "NO_CAPACITY", "description": "Sorry, the restaurant cannot take your order right now." } ] }
FulfillmentInfo
בטבלה הבאה מפורטים המאפיינים של הסוג FulfillmentInfo
:
נכס | סוג | תיאור | |
---|---|---|---|
צריך לציין בדיוק אחת מהקבוצות הבאות של מאפיינים. | |||
deliveryTime |
קבוצה 1 | חותמת זמן של ISO |
שימוש ב-estimatedFulfillmentTimeIso8601 בהודעה של תוסף FoodOrderingUpdateExtension |
pickupTime |
קבוצה 2 | חותמת זמן לפי תקן ISO |
שימוש ב-estimatedFulfillmentTimeIso8601 בהודעה של תוסף FoodOrderingUpdateExtension |
בדוגמה הבאה מוצג רכיב FulfillmentInfo
:
דוגמה 1
{ "deliveryTime": "2017-05-10T02:36:38.803Z" }
דוגמה 2
{ "pickupTime": "2019-12-26T07:24:27.803Z" }
InTransitInfo
בטבלה הבאה מפורטים המאפיינים של הסוג InTransitInfo
:
נכס | סוג | תיאור | |
---|---|---|---|
updatedTime |
חותמת זמן לפי תקן ISO |
שימוש ב-estimatedFulfillmentTimeIso8601 בהודעה של תוסף FoodOrderingUpdateExtension |
בדוגמה הבאה מוצג רכיב InTransitInfo
:
דוגמה
{ "updatedTime": "2017-05-10T02:36:38.803Z" }
LineItemUpdate
בטבלה הבאה מפורטים המאפיינים לסוג LineItemUpdate
:
נכס | סוג | תיאור | |
---|---|---|---|
orderState |
OrderState |
||
price |
Price |
||
reason |
String |
הסיבה לשינוי. חובה לשינויים במחירים. |
בדוגמה הבאה מוצג רכיב LineItemUpdate
:
דוגמה
{ "orderState": { "state": "CONFIRMED", "label": "Provider confirmed" }, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "5", "nanos": 500000000 } }, "reason": "Menu updated prices." }
OpenUrlAction
בטבלה הבאה מפורטים המאפיינים של הסוג OpenUrlAction
:
נכס | סוג | תיאור | |
---|---|---|---|
url |
String | חובה. הפעולה שמופעלת בלחיצה על הלחצן או במגע בו. רשימת הקידומות הרלוונטיות תלויה ב-orderManagementActionType. "EMAIL": התחילית חייבת להיות "mailto". 'CALL': הקידומת חייבת להיות 'tel'. "CUSTOMER_SERVICE": הקידומת חייבת להיות "mailto", "tel", "http" או "https". לדוגמה: |
OrderManagementAction
ניהול ההזמנות מאפשר למשתמשים לקבל תמיכה לאחר ביצוע ההזמנה, ויש לשלוח אותו בכל OrderUpdate
בתוך ההזמנה שנשלחת AppResponse
ובכל AsyncOrderUpdateRequestMessage
שנשלחת לאחר מכן. פעולות ניהול ההזמנות שנשלחות עבור הזמנה מסוימת עשויות להשתנות בהתאם לסטטוס שלה.
לדוגמה, במצב CREATED, CUSTOMER_SERVICE
עשוי להפנות למספר הטלפון של תמיכת הלקוחות. לאחר מכן, במצב 'אושר', CUSTOMER_SERVICE
יכול לשנות את מספר הטלפון של המסעדה אם זהו אמצעי הקשר הטוב ביותר ללקוח. באופן דומה, כשההזמנה במצב FULFILLED,
CUSTOMER_SERVICE
יכול להפנות לכתובת האימייל שלך לתמיכה.
בטבלה הבאה מפורטים המאפיינים לסוג OrderManagementAction
:
נכס | סוג | תיאור | |
---|---|---|---|
type |
OrderManagementActionType |
חובה. |
|
button |
Button |
חובה. |
בדוגמה הבאה מוצג רכיב OrderManagementAction
:
דוגמה 1
{ "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }
דוגמה 2
{ "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }
OrderManagementActionType
הגדרת סוגים שקשורים ל-OrderManagementAction
.
אלה הערכים האפשריים של הסוג OrderManagementActionType
:
CUSTOMER_SERVICE
: כתובת האימייל ו/או מספר הטלפון ליצירת קשר עם שירות הלקוחות שיוצגו בדף אישור ההזמנה. חובה לציין את הפרמטר הזה. התחילית של openUrlAction.url חייבת להיות 'mailto', 'tel', 'http' או 'https'.EMAIL
: פעולת שליחת אימייל בדף פרטי ההזמנה בלבד. הקידומת של openUrlAction.url חייבת להיות 'mailto'.CALL_DRIVER
: קריאה לפעולה בדף פרטי ההזמנה בלבד. הקידומת של openUrlAction.url חייבת להיות 'tel'.CALL_RESTAURANT
: פעולת הקריאה לפעולה בדף פרטי ההזמנה בלבד. התחילית openUrlAction.url חייבת להיות "tel".
OrderState
המצב הנוכחי של ההזמנה. כל ערך state
של OrderState
תואם גם לסטטוס הרכישה בכתובת myaccount.google.com.
בטבלה הבאה מפורטים המאפיינים של הסוג OrderState
:
נכס | סוג | תיאור | |
---|---|---|---|
state |
OrderStateEnum |
חובה. |
|
label |
String | חובה. מחרוזת התצוגה של המצב הגלויה למשתמש. מכילה אות גדולה בתחילת המשפט (באנגלית). לדוגמה: |
בדוגמה הבאה מוצג רכיב OrderState
:
דוגמה
{ "state": "CONFIRMED", "label": "Provider confirmed" }
OrderStateEnum
הגדרת סוגים שקשורים ל-OrderState
.
אלה הערכים האפשריים של הסוג OrderStateEnum
:
CREATED
: ההזמנה נוצרה על ידי מבצע השילוב וממתינה לאישור מהספק. תואם לסטטוס הרכישה 'הוזמנה'.CONFIRMED
: ההזמנה אושרה על ידי הספק והיא פעילה. תואם לסטטוס הרכישה 'אושר'.REJECTED
: ההזמנה נדחתה על ידי המשתמש המאחד או הספק. תואם לסטטוס הרכישה 'נדחתה'.CANCELLED
: המשתמש ביטל את ההזמנה. תואם לסטטוס הרכישה 'מבוטל'.IN_PREPARATION
: האוכל בהכנה. תואם לסטטוס הרכישה 'סטטוס לא ידוע'.READY_FOR_PICKUP
: האוכל מוכן לאיסוף. תואם לסטטוס הרכישה 'מוכנה לאיסוף'.IN_TRANSIT
: ההזמנה בדרך. תואם לסטטוס הרכישה 'בתהליך'.FULFILLED
: המשתמש קיבל את מה שהוזמן. תואם לסטטוס הרכישה 'נאספה'.
קבלה
שולחים את הסוג הזה בהזמנת שליחהAppResponse
, שבה הערך של OrderState
הוא 'CONFIRMED', 'FULFILLED' או 'IN_TRANSIT'. עליכם לשלוח קבלה
כש-userVisibleOrderId
יהיה זמין. אין צורך להמשיך לשלוח את הקבלה בעדכונים הבאים.
בטבלה הבאה מפורטים המאפיינים של הסוג Receipt
:
נכס | סוג | תיאור | |
---|---|---|---|
userVisibleOrderId |
String | חובה. חובה אם סטטוס ההזמנה הוא 'CONFIRMED', 'IN_TRANSIT' או 'FULFILLED'. השדה הזה הוא המזהה היחיד של ההזמנה שגלוי למשתמשים (בדרך כלל מזהה ההזמנה של המסעדה), והוא מוצג גם בקבלה של המשתמש המאוחזר וגם בכרטיס ההזמנה ב-Google. המשתמש צריך להיות מסוגל להשתמש במזהה הזה כדי להפנות את ההזמנה לשירות הלקוחות של הספק והממשק. צריך לספק את המזהה הזה רק פעם אחת בכל OrderUpdate נתון. עד שהוא מסופק, הערך של actionOrderId הוא userVisibleOrderId. לדוגמה, יכול להיות שלא יהיה לכם userVisibleOrderId עד שהמסעדה תאשר את ההזמנה. לאחר האישור, תצטרכו לשלוח AsyncOrderUpdateRequestMessage עם OrderUpdate וקבלה. |
בדוגמה הבאה מוצג רכיב Receipt
:
דוגמה
{ "userVisibleOrderId": "userVisibleId1234" }
RejectionInfo
בטבלה הבאה מפורטים המאפיינים של הסוג RejectionInfo
:
נכס | סוג | תיאור | |
---|---|---|---|
type |
RejectionType |
חובה. |
|
reason |
String |
הסיבה לדחייה, המשמשת לצורכי רישום ביומן פנימי. השדה הזה לא גלוי למשתמשים. |
בדוגמה הבאה מוצג רכיב RejectionInfo
:
דוגמה
{ "type": "PAYMENT_DECLINED", "reason": "There is an issue with payment processing." }
RejectionType
אלה הערכים האפשריים של הסוג RejectionType
:
INELIGIBLE
: המשתמש לא עומד בדרישות בגלל בעיות שקשורות למדיניות או לסיכון.PAYMENT_DECLINED
: יש בעיה בעיבוד התשלום.UNAVAILABLE_SLOT
: לא ניתן למלא את ההזמנה במועד שצוין בהזמנה מראש בשדות DeliveryInfo או PickupInfo.PROMO_NOT_APPLICABLE
: יש בעיה במבצע.UNKNOWN
: כל סיבה אחרת.
סוגים הקשורים לתשלומים
בקטע הזה מתוארים הסוגים הקשורים לתשלומים שמשמשים למילוי הזמנות ממסעדות.ActionProvidedPaymentOptions
הדרישות לאמצעי תשלום שסופק על ידי פעולה.
בטבלה הבאה מפורטים המאפיינים של הסוג ActionProvidedPaymentOptions
:
נכס | סוג | תיאור | |
---|---|---|---|
paymentType |
PaymentType |
חובה. |
|
displayName |
String | חובה. השם של אמצעי התשלום שמוצג בקבלה. לדוגמה: |
|
onFulfillmentPaymentData |
OnFulfillmentPaymentData |
נתונים נוספים עבור paymentType 'ON_FULFILLMENT'. לדוגמה, אפשר להשתמש בשדה הזה כדי לציין אם יש תמיכה במזומן או בכרטיס בזמן מימוש. |
בדוגמה הבאה מוצג רכיב ActionProvidedPaymentOptions
:
דוגמה
{ "paymentType": "ON_FULFILLMENT", "displayName": "Pay when you get your food.", "onFulfillmentPaymentData": { "supportedPaymentOptions": [ "Cash", "Card" ] } }
AllowedAuthMethods
אלה הערכים האפשריים של הסוג AllowedAuthMethods
:
PAN_ONLY
: שיטת אימות שמשויכת לכרטיסי תשלום שמאוחסנים בחשבון Google של המשתמש. נתוני התשלום שמוחזרים כוללים מספר חשבון אישי (PAN) עם חודש התפוגה ושנה התפוגה.
AllowedCardNetworks
אלה הערכים האפשריים של הסוג AllowedCardNetworks
:
AMEX
DISCOVER
INTERAC
JCB
MASTERCARD
VISA
BillingAddressParameters
האובייקט הזה מאפשר להגדיר שדות נוספים שיוחזר עבור כתובת לחיוב שהתבקשה.
בטבלה הבאה מפורטים המאפיינים של הסוג BillingAddressParameters
:
נכס | סוג | תיאור | |
---|---|---|---|
format |
String |
הפורמט הנדרש של הכתובת לחיוב כדי להשלים את העסקה. MIN: שם, קוד מדינה ומיקוד. מלאה: שם, רחוב, יישוב, אזור, קוד מדינה ומיקוד. |
בדוגמה הבאה מוצג רכיב BillingAddressParameters
:
דוגמה 1
{ "format": "MIN" }
דוגמה 2
{ "format": "FULL" }
CardParameters
משתמשים באובייקט הזה כדי להגדיר את התמיכה של האתר ב-Google Pay API.
בטבלה הבאה מפורטים המאפיינים של הסוג CardParameters
:
נכס | סוג | תיאור | |
---|---|---|---|
allowedAuthMethods |
רשימה<Const> | חובה. שדות נתמכים לאימות עסקה בכרטיס. חייב להכיל לפחות פריט אחד. |
|
allowedCardNetworks |
List<AllowedCardNetworks > |
חובה. רשת כרטיסים אחת או יותר שאתם תומכים בהן, ושגם Google Pay API תומך בהן. חייב להכיל לפחות פריט אחד. |
|
billingAddressRequired |
בוליאני |
מגדירים את הערך כ-true אם צריך לציין כתובת לחיוב. צריך לבקש כתובת לחיוב רק אם היא נדרשת לעיבוד העסקה. בקשות לנתונים נוספים עלולות להגדיל את החיכוך בתהליך התשלום ולהוביל לשיעורי המרה נמוכים יותר. |
|
billingAddressParameters |
BillingAddressParameters |
השדות הצפויים שיוחזרו אם billingAddressRequired מוגדר כ-true. |
|
cvcRequired |
בוליאני |
מגדירים את הערך כ-true אם משתמשים ב-TimesofMoney, ו-false לכל ספקי עיבוד התשלומים האחרים. |
בדוגמה הבאה מוצג רכיב CardParameters
:
דוגמה 1
{ "allowedAuthMethods": [ "PAN_ONLY" ], "allowedCardNetworks": [ "AMEX", "DISCOVER" ], "billingAddressRequired": false, "cvcRequired": false }
דוגמה 2
{ "allowedAuthMethods": [ "PAN_ONLY" ], "allowedCardNetworks": [ "AMEX", "DISCOVER" ], "billingAddressRequired": true, "billingAddressParameters": { "format": "MIN" }, "cvcRequired": false }
GoogleProvidedPaymentInstrument
בטבלה הבאה מפורטים המאפיינים לסוג GoogleProvidedPaymentInstrument
:
נכס | סוג | תיאור | |
---|---|---|---|
instrumentToken |
String | חובה. מחרוזת בקידוד Base64 שמכילה את אסימון התשלום לחיוב המשתמש באמצעות מעבד Google Pay שמשתתף, בהתאם ל-GoogleProvidedPaymentOptions שצוין קודם. |
|
billingAddress |
PostalAddress |
הכתובת לחיוב של התשלום. |
בדוגמה הבאה מוצג רכיב GoogleProvidedPaymentInstrument
:
דוגמה
{ "instrumentToken": "abcd", "billingAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] } }
GoogleProvidedPaymentOptions
הדרישות בנוגע לאמצעי תשלום ש-Google מספקת.
בטבלה הבאה מפורטים המאפיינים לסוג GoogleProvidedPaymentOptions
:
נכס | סוג | תיאור | |
---|---|---|---|
facilitationSpecification |
String |
אובייקט JSON של PaymentDataRequest כמחרוזת. משתמשים באובייקט הזה כדי להגדיר את התמיכה של האתר ב-Google Pay API. |
|
supportedCardNetworks |
List<SupportedCardNetworks > |
במקום זאת, צריך להשתמש ב-facilitationSpecification. סוג רשתות הכרטיסים שנתמכות על ידי הסוכן. השדה הזה הוצא משימוש. |
|
prepaidCardDisallowed |
בוליאני |
במקום זאת, צריך להשתמש ב-facilitationSpecification. אם מותר להשתמש בכרטיס נטען כסוג תשלום. השדה הזה הוצא משימוש. |
|
billingAddressRequired |
בוליאני |
במקום זאת, צריך להשתמש ב-facilitationSpecification. אם נדרשת כתובת לחיוב או לא. השדה הזה הוצא משימוש. |
|
tokenizationParameters |
TokenizationParameters |
השדה הזה הוצא משימוש. |
בדוגמה הבאה מוצג רכיב GoogleProvidedPaymentOptions
:
דוגמה 1
{ "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\": false }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" }
דוגמה 2
{ "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "braintree", "braintree:apiVersion": "v1", "braintree:sdkVersion": "1.4.0", "braintree:merchantId": "a1b2c3d4e5", "braintree:clientKey": "production_braintree_client_key", "braintree:authorizationFingerprint": "same_as_client_key" } }, "supportedCardNetworks": [ "AMEX", "DISCOVER", "MASTERCARD", "JCB", "VISA" ], "prepaidCardDisallowed": true }
דוגמה 3
{ "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:publishableKey": "pk_live_stripe_client_key", "stripe:version": "2017-04-06" } }, "supportedCardNetworks": [ "AMEX", "DISCOVER", "MASTERCARD", "VISA", "JCB" ], "prepaidCardDisallowed": true, "billingAddressRequired": true }
MerchantInfo
משתמשים באובייקט הזה כדי להגדיר את התמיכה של האתר ב-Google Pay API.
בטבלה הבאה מפורטים המאפיינים של הסוג MerchantInfo
:
נכס | סוג | תיאור | |
---|---|---|---|
merchantId |
String |
מזהה המוכר ב-Google שהונפקה לכם על ידי Google Pay. |
|
merchantName |
String | חובה. שם המוכר מקודד כ-UTF-8. שם המוֹכר מוצג בגיליון התשלומים. |
OnFulfillmentPaymentData
משתמשים באובייקט הזה כדי לשלוח נתונים נוספים עבור PaymentType 'ON_FULFILLMENT'.
בטבלה הבאה מפורטים המאפיינים לסוג OnFulfillmentPaymentData
:
נכס | סוג | תיאור | |
---|---|---|---|
supportedPaymentOptions |
רשימה<PaymentOptionsEnums > |
רשימת אמצעי התשלום שזמינים למשתמש בזמן ביצוע ההזמנה. |
בדוגמה הבאה מוצג רכיב OnFulfillmentPaymentData
:
דוגמה
{ "supportedPaymentOptions": [ "Cash", "Card" ] }
פרמטרים
הגדרת סוגים שקשורים ל-TokenizationParameters
.
בטבלה הבאה מפורטים המאפיינים של הסוג Parameters
:
נכס | סוג | תיאור | |
---|---|---|---|
gateway |
String | חובה. לדוגמה: |
|
gatewayMerchantId |
String | ||
[additionalKey: string] |
String | צמדים נוספים של מפתח/ערך |
בדוגמה הבאה מוצג רכיב Parameters
:
דוגמה 1
{ "gatewayMerchantId": "90412491", "gateway": "olo" }
דוגמה 2
{ "gateway": "braintree", "braintree:apiVersion": "v1", "braintree:sdkVersion": "1.4.0", "braintree:merchantId": "YOUR_MERCHANT_ID", "braintree:clientKey": "YOUR_BRAINTREE_SANDVOX_OR_PRODUCTION_KEY" }
PaymentDataRequest
משתמשים באובייקט הזה כדי להגדיר את התמיכה של האתר ב-Google Pay API.
בטבלה הבאה מפורטים המאפיינים של הסוג PaymentDataRequest
:
נכס | סוג | תיאור | |
---|---|---|---|
apiVersion |
Const | חובה. גרסת ה-API הראשית. ערך: |
|
apiVersionMinor |
Const | חובה. גרסת API משנית. ערך: |
|
merchantInfo |
MerchantInfo |
חובה. (מזהה מוכר ב-Google Pay) מידע על המוכר שמבקש את נתוני התשלום. |
|
allowedPaymentMethods |
List<PaymentMethod > |
חובה. מציין תמיכה באמצעי תשלום אחד או יותר שנתמכים על ידי Google Pay API. |
|
transactionInfo |
TransactionInfo |
חובה. פרטים על ההרשאה של העסקה, בהתאם להסכמה של המשתמש לעסקה או לא. השדה הזה כולל את המחיר הכולל ואת סטטוס המחיר. |
בדוגמה הבאה מוצג רכיב PaymentDataRequest
:
דוגמה
{ "apiVersion": 2, "apiVersionMinor": 0, "merchantInfo": { "merchantId": "10391231", "merchantName": "Burrito Town" }, "allowedPaymentMethods": [ { "type": "CARD", "parameters": { "allowedAuthMethods": [ "PAN_ONLY" ], "allowedCardNetworks": [ "VISA", "AMEX", "MASTERCARD" ], "billingAddressRequired": true, "billingAddressParameters": { "format": "FULL" }, "cvcRequired": false }, "tokenizationSpecification": { "type": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:version": "2019-05-16", "stripe:publishableKey": "pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA" } } } ], "transactionInfo": { "currencyCode": "INR", "totalPriceStatus": "ESTIMATED", "totalPrice": "185.00" } }
PaymentInfo
מידע שקשור לתשלום בהזמנה.
בטבלה הבאה מפורטים המאפיינים של הסוג PaymentInfo
:
נכס | סוג | תיאור | |
---|---|---|---|
displayName |
String | חובה. השם הגלוי למשתמש של אמצעי התשלום שיופיע בקבלה. |
|
paymentType |
PaymentType |
חובה. |
|
googleProvidedPaymentInstrument |
GoogleProvidedPaymentInstrument |
אסימון שאפשר להשתמש בו בפעולה. מציינים את הפרמטר הזה רק אם ציינת את GoogleProvidedPaymentOptions כאפשרות תשלום ב-CheckoutResponseMessage. |
בדוגמה הבאה מוצג רכיב PaymentInfo
:
דוגמה 1
{ "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd" }, "paymentType": "PAYMENT_CARD" }
דוגמה 2
{ "displayName": "Visa\u2006****\u20061111", "googleProvidedPaymentInstrument": { "instrumentToken": "abcd", "billingAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "123 Random Street", "Unit ABC" ], "recipients": [ "sample_receipient" ] } }, "paymentType": "PAYMENT_CARD" }
PaymentMethod
משתמשים באובייקט הזה כדי להגדיר את התמיכה של האתר ב-Google Pay API.
בטבלה הבאה מפורטים המאפיינים של הסוג PaymentMethod
:
נכס | סוג | תיאור | |
---|---|---|---|
type |
Const | חובה. מזהה קצר של אמצעי התשלום הנתמך. בשלב זה, יש תמיכה רק ב-CARD. ערך: |
|
parameters |
CardParameters |
חובה. הפרמטרים הנדרשים להגדרת סוג אמצעי התשלום שצוין. |
|
tokenizationSpecification |
TokenizationSpecification |
חובה. מגדירים חשבון או ספק פענוח לקבלת פרטי תשלום. המאפיין הזה נדרש לאמצעי התשלום CARD. |
בדוגמה הבאה מוצג רכיב PaymentMethod
:
דוגמה
{ "type": "CARD", "parameters": { "allowedAuthMethods": [ "PAN_ONLY" ], "allowedCardNetworks": [ "VISA", "AMEX", "MASTERCARD" ], "billingAddressRequired": false }, "tokenizationSpecification": { "type": "PAYMENT_GATEWAY", "parameters": { "gatewayMerchantId": "90412491", "gateway": "olo" } } }
PaymentOptions
בטבלה הבאה מפורטים המאפיינים של הסוג PaymentOptions
:
נכס | סוג | תיאור | |
---|---|---|---|
צריך לציין בדיוק אחת מהקבוצות הבאות של מאפיינים. | |||
googleProvidedOptions |
קבוצה 1 | GoogleProvidedPaymentOptions |
בלעדי באופן הדדי עם actionProvidedOptions. אפשר להשתמש בו לתשלום אונליין באמצעות gPay. |
actionProvidedOptions |
קבוצה 2 | ActionProvidedPaymentOptions |
הערך הזה לא יכול להתקיים בו-זמנית עם הערך googleProvidedOptions. אפשר להשתמש במאפיין הזה עבור 'מזומן בזמן המסירה' או 'תשלום לאחר מילוי ההזמנה'. |
בדוגמה הבאה מוצג רכיב PaymentOptions
:
דוגמה 1
{ "googleProvidedOptions": { "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\": false }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" } }
דוגמה 2
{ "googleProvidedOptions": { "facilitationSpecification": "{\"apiVersion\": 2,\"apiVersionMinor\": 0,\"merchantInfo\": { \"merchantId\": \"Merchant ID\", \"merchantName\": \"Merchant Name\"},\"allowedPaymentMethods\": [ { \"type\": \"CARD\", \"parameters\": { \"allowedAuthMethods\": [ \"PAN_ONLY\" ], \"allowedCardNetworks\": [ \"VISA\", \"AMEX\", \"MASTERCARD\" ], \"billingAddressRequired\":true, \"billingAddressParameters\": { \"format\":\"MIN\" } }, \"tokenizationSpecification\": { \"type\": \"PAYMENT_GATEWAY\", \"parameters\": { \"stripe:publishableKey\": \"pk_test_OoPcJNnxI1rDXhBq8BiXO2wz00s1Xc92dA\", \"gateway\": \"stripe\", \"stripe:version\": \"2019-05-16\" } } }],\"transactionInfo\": { \"currencyCode\": \"AUD\", \"totalPriceStatus\": \"ESTIMATED\", \"totalPrice\": \"1.0\"}}" } }
דוגמה 3
{ "actionProvidedOptions": { "paymentType": "ON_FULFILLMENT", "displayName": "Pay when you get your food.", "onFulfillmentPaymentData": { "supportedPaymentOptions": [ "Cash", "Card" ] } } }
PaymentOptionsEnums
אלה הערכים האפשריים של הסוג PaymentOptionsEnums
:
Cash
Card
UPI
Paytm
PaymentType
הסוג PaymentType
כולל את הערכים האפשריים הבאים:
PAYMENT_CARD
: ל-GoogleProvidedPaymentOptions.ON_FULFILLMENT
: ל-ActionProvidedPaymentOptions.
SupportedCardNetworks
הגדרת סוגים שקשורים ל-GoogleProvidedPaymentOptions
.
אלה הערכים האפשריים של הסוג SupportedCardNetworks
:
UNSPECIFIED_CARD_NETWORK
AMEX
DISCOVER
JCB
MASTERCARD
VISA
TokenizationParameters
הגדרת סוגי נתונים שקשורים ל-GoogleProvidedPaymentOptions
.
בטבלה הבאה מפורטים המאפיינים של הסוג TokenizationParameters
:
נכס | סוג | תיאור | |
---|---|---|---|
tokenizationType |
Enum [
"UNSPECIFIED_TOKENIZATION_TYPE",
"PAYMENT_GATEWAY"
] |
חובה. במקום זאת, צריך להשתמש ב-facilitationSpecification. סוג האסימונים המקובל. |
|
parameters |
Parameters |
במקום זאת, צריך להשתמש ב-facilitationSpecification. |
TokenizationSpecification
האובייקט הזה מאפשר להגדיר חשבון לקבלת פרטי תשלום לחיוב.
בטבלה הבאה מפורטים המאפיינים של הסוג TokenizationSpecification
:
נכס | סוג | תיאור | |
---|---|---|---|
type |
Const | חובה. |
|
parameters |
Parameters |
חובה. |
בדוגמה הבאה מוצג רכיב TokenizationSpecification
:
דוגמה 1
{ "type": "PAYMENT_GATEWAY", "parameters": { "gatewayMerchantId": "1247192", "gateway": "cybersource" } }
דוגמה 2
{ "type": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:version": "2018-10-31", "stripe:publishableKey": "12378127" } }
TransactionInfo
באובייקט הזה מתוארת עסקה שקובעת את היכולת של המשלם לשלם. הוא משמש להצגת תיבת דו-שיח של הרשאת תשלום.
בטבלה הבאה מפורטים המאפיינים של הסוג TransactionInfo
:
נכס | סוג | תיאור | |
---|---|---|---|
currencyCode |
String | חובה. קוד מטבע אלפביתי לפי תקן ISO 4217. |
|
transactionId |
String |
מזהה ייחודי שמזהה ניסיון לביצוע עסקה. מוכרים יכולים להשתמש במזהה קיים או ליצור מזהה ספציפי לניסיונות עסקאות ב-Google Pay. השדה הזה נדרש כששולחים קריאות חזרה (callbacks) ל-Google Transaction Events API. |
|
totalPriceStatus |
המשך | חובה. כדאי להשתמש ב-'ESTIMATED' (משוער) כברירת מחדל. המחיר הכולל עשוי להשתנות על סמך פרטי התגובה, למשל מס מכירה שנגבה לפי כתובת לחיוב. ערך: |
|
totalPrice |
String | חובה. הערך הכולל של העסקה, עם דיוק עשרוני אופציונלי של שתי ספרות אחרי הנקודה העשרונית. הערך בשדה הזה צריך להיות זהה לערך של cart.totalPrice. |
בדוגמה הבאה מוצג רכיב TransactionInfo
:
דוגמה
{ "totalPriceStatus": "ESTIMATED", "totalPrice": "12.34", "currencyCode": "USD" }