סוגי בסיס
עגלת קניות
מכיל את פרטי ההזמנה, וכן אם הבקשה היא לאיסוף או למשלוח. עגלת הקניות כוללת גם את פרטי המשלוח, התשלום והכתובת למשלוח. האובייקטCart
מוגדר ברכיב Checkout AppRequest
.f
יש לכלול עותק של עגלת הקניות בCheckout AppResponse
בטבלה הבאה מפורטים המאפיינים של הסוג Cart
:
נכס | סוג | תיאור | |
---|---|---|---|
@type |
מגבלה |
סוג האובייקט הזה. יש להשמיט את השדה הזה אם אובייקט עגלת הקניות ההורה הוא חלק מ-ProposedOrder. ערך: |
|
id |
String |
המזהה האופציונלי של עגלת הקניות. |
|
merchant |
Merchant |
המוכר משויך לעגלת הקניות הזו. |
|
lineItems |
רשימה<LineItem > |
חובה. רשימה של המוצרים או השירותים שהמשתמש מזמין. אפשר לכלול עד פריט אחד. |
|
promotions |
רשימה<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" } } }
Contact
מציין את הפרטים של האדם שקיבל את ההזמנה. הוא זמין רק בAppResponse
.
בטבלה הבאה מפורטים המאפיינים של הסוג Contact
:
נכס | סוג | תיאור | |
---|---|---|---|
displayName |
String |
שם האדם שקיבל את ההזמנה, כפי שברצונך להציג. יש להשתמש בשדה הזה אם שם פרטי ו-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{שעה}:{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#Integrated_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 או PickupInfo.OUT_OF_SERVICE_AREA
: לא ניתן לשלוח את ההזמנה לכתובת של המשתמש.PROMO_EXPIRED
: לא ניתן להחיל כי המבצע פג.PROMO_NOT_APPLICABLE
: קוד שגיאה כללי שיתעד את כל המקרים של כשל בהחלת קוד ההטבה, אם אף אחת מהשגיאות האחרות בקוד ההטבה לא מתאימה.PROMO_NOT_RECOGNIZED
: קוד השובר לא זוהה.PROMO_ORDER_INELIGIBLE
: ההזמנה הנוכחית אינה כשירה לקבלת שובר זה.PROMO_USER_INELIGIBLE
: המשתמש הנוכחי אינו זכאי לשובר הזה.AVAILABILITY_CHANGED
: הפריט כבר לא זמין, או שאין מספיק פריטים כדי למלא את הבקשה.INCORRECT_PRICE
: שגיאות במחיר בעמלות או בסכומים הכוללים.INVALID
: פריט שורה, אפשרות מילוי או מבצע מכילים נתונים לא חוקיים.NOT_FOUND
: לא ניתן למצוא LineItem, FulfillmentOption או מבצע.PRICE_CHANGED
: מחיר הפריט השתנה.
FeeAmountRange
בטבלה הבאה מפורטים המאפיינים של הסוג FeeAmountRange
:
נכס | סוג | תיאור | |
---|---|---|---|
minFeeAmount |
Money |
הגבול התחתון של סכום העמלה שחויב.. |
|
maxFeeAmount |
Money |
הגבול העליון של סכום העמלה שחויב.. |
FeePercentRange
בטבלה הבאה מפורטים המאפיינים של הסוג FeePercentRange
:
נכס | סוג | תיאור | |
---|---|---|---|
minFeePercent |
מספר |
הגבול התחתון של אחוז העמלה שחויב. |
|
maxFeePercent |
מספר |
הגבול העליון של אחוז העמלה שחויב. |
FoodCartExtension
מכילה פרטים על המשתמש, כמו העדפות מילוי הזמנה.
בטבלה הבאה מפורטים המאפיינים של הסוג FoodCartExtension
:
נכס | סוג | תיאור | |
---|---|---|---|
@type |
מגבלה |
סוג התוסף הזה. השדה הזה תמיד מוגדר ל-"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 |
מגבלה | חובה. סוג התוסף הזה. ערך: |
|
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 |
מגבלה | חובה. סוג התוסף הזה. השדה הזה מוגדר תמיד כ-"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 |
String |
מזהה המבצע של הפריט. לדוגמה: |
|
name |
String |
שם האפשרות. לדוגמה: |
|
price |
Money |
||
note |
String |
הערה שקשורה לאפשרות. |
|
quantity |
מספר |
לאפשרויות שהן פריטים, את מספר הפריטים. לדוגמה: |
|
subOptions |
רשימה<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_PAYMENTS". |
|
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 |
מגבלה |
סוג התוסף הזה. השדה הזה תמיד מוגדר ל-"type.googleapis.com/google.actions.v2.orders.FoodOrderExtension". ערך: |
|
availableFulfillmentOptions |
רשימה<FulfillmentOption > |
פירוט האפשרויות הזמינות למילוי הזמנות של ההזמנה. |
|
optinForRemarketing |
בוליאני |
בקשה מהמשתמש להביע הסכמה לערוצי השיווק שלך. כברירת מחדל, לא ניתן לשלוח תוכן שיווקי ללא הסכמת המשתמשים. אם ערך המצב של OptinForDownload נכון, אפשר לרשום את המשתמש. אם השדה OptinForDownload מופיע בטעות או שאינו קיים, יש להשאיר את סטטוס המינוי במערכת שלך כפי שהוא. משתמשים לא יכולים לבטל את ההצטרפות דרך 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 | חובה כאשר עבור פריט שורה בעגלת הקניות (ProposedOrder.cart.lineItems[0].id), זהו המזהה הייחודי ש-Google יצרה בזמן יצירת ההזמנה. עבור פריט שורה ב-ProposedOrder (ProposedOrder.otherItems[0].id), שמשמש להוספת פריטים כמו עמלות משלוח ומיסים, ערך המזהה מוגדר על ידי הספק. לדוגמה, בעגלה יש שניים מאותם פריטים עם הוראות הכנה שונות (למשל שתי פיצות באורך בינוני עם סטים שונים של תוספות). במקרה הזה, לשני הפריטים יש אותו מזהה מבצע בסיסי. כששולחים בקשה לעדכון הזמנה כדי לציין שפריט מסוים נדחה, צריך להשתמש במזהה הזה כהבחנה. במילים אחרות, אם אחת מהפיצות נדחתה כי אין בה תוספת מסוימת, המזהה עוזר ל-Google לקבוע לאיזה פריט בסדר ההתייחסות. שדה זה הוא שדה חובה, מלבד otherItems. |
|
name |
String | חובה. שם הפריט. זוהי מחרוזת שגלויה למשתמשים, ויש להשתמש באותיות רישיות היכן שאפשר להשתמש בה (למשל, 'דמי משלוח', 'חיוב על שירות', 'מס'). השדה הזה מקוצר ל-100 תווים למשתמשים. |
|
type |
LineItemType |
חובה. |
|
quantity |
Integer | חובה כאשר מספר הפריטים הכלולים. לא רלוונטי ל-ProposedOrder.otherItems. |
|
description |
String |
תיאור הפריט. |
|
price |
Price |
חובה. מחיר הפריט או הפריטים. הערך הזה משקף את המחיר הכולל של כל המוצרים או השירותים של הפריט הזה (במילים אחרות, צריך להוסיף את העלות של תוספים כלשהם ולהכפיל בכמות). לדוגמה: אם פריט בשווי 40 ש"ח כולל כמות 3, המחיר יהיה 120 ש"ח. לפיצה אחת במחיר בסיס של 20 ש"ח ולתוספת של 4 ש"ח, המחיר יהיה 24 ש"ח. לשתי פיצות (כמות = 2) במחיר בסיס של 20 ש"ח וכל אחת עם תוספת של 4 ש"ח, המחיר יהיה 48 ש"ח. לכל פריט צריך להיות מחיר, גם אם המחיר הוא "0". כאשר הסוג הוא DISCOUNT, יש לציין את הערך כשלילי (לדוגמה, ' -2'). |
|
subLines |
רשימה<SublineNote > |
אופציונלי ותקף רק אם הסוג הוא 'REGULAR'. הערה ספציפית לפריט מהמשתמש יכולה להישלח בשדה הזה בבקשת התשלום ובבקשת שליחת ההזמנה. חשוב לוודא שהמוכר מקבל את ההערה כשהיא נמסרת. הוא יופיע בבקשה בתור subLines[0].note, וזהו הערך היחיד שמצוין בשדה הזה כשהוא מופיע בבקשה. אפשר לכלול עד פריט אחד. |
|
offerId |
String | חובה כאשר מזהה המבצע של הפריט בתפריט. לא רלוונטי ל-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 |
המספר המזהה של המוכר. אם צוין, התאמה ל-מסעדה.@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 ויחידות ננו = -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 | חובה. המזהה הייחודי של ההזמנה במערכת של השילוב, המשמש לזיהוי ההזמנה שלגביה העדכון נשלח. אם הקבלה.user_visible_order_id לא צוין לפחות פעם אחת ב-OrderUpdate להזמנה מסוג 'CREATED', המזהה הזה יהיה המזהה הגלוי למשתמש שהוזן ויוצג בכרטיס ההזמנה של Google. |
|
orderState |
OrderState |
חובה. המצב החדש של הצו. |
|
lineItemUpdates |
מפה<מחרוזת, LineItemUpdate > |
||
updateTime |
חותמת זמן של ISO | חובה. המועד שבו ההזמנה עודכנה. |
|
orderManagementActions |
רשימה<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{שעה}:{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#Integrated_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 |
רשימה<LineItem > |
פריטים שהספק הוסיף, כמו דמי משלוח, עמלות אחרות ומיסים. פריטים אחרים עשויים לכלול גם תשר ו/או הנחה שנוספו על ידי המשתמש. אפשר לכלול עד 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 |
רשימה<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
עם ה-Intent actions.foodordering.intent.CHECKOUT
.
SubmitOrderRequestMessage
השדהSubmitOrderRequestMessage
הוא AppRequest
עם ה-Intent 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 |
רשימה<Argument > |
חובה. מכילה את העגלה לבדיקה או את ההזמנה לביצוע צריך לכלול בדיוק פריט אחד. |
ארגומנט
כוללת פרטים על פריטי המזון שהמשתמש רוצה לשלם. במקרה של תשלום, רק תוסף רלוונטי. לשליחת ההזמנה, ניתן להחיל רק transactionDecisionValue
בטבלה הבאה מפורטים המאפיינים של הסוג Argument
:
נכס | סוג | תיאור | |
---|---|---|---|
נדרשת בדיוק אחת מקבוצות הנכסים הבאות. | |||
extension |
קבוצה 1 | Cart |
פרטים על פריטי האוכל שהמשתמש רוצה לשלם. |
transactionDecisionValue |
קבוצה 2 | TransactionDecisionValue |
מכיל את ההזמנה לביצוע יחד עם פרטי התשלום. |
תגובה למילוי הזמנות
AppResponse
בטבלה הבאה מפורטים המאפיינים של הסוג AppResponse
:
נכס | סוג | תיאור | |
---|---|---|---|
expectUserResponse |
מגבלה |
הגדרה כ-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
התגובה שלך לקופה בעגלת הקניות או לשלוח OrderRequestMessage.
בטבלה הבאה מפורטים המאפיינים של הסוג FinalResponse
:
נכס | סוג | תיאור | |
---|---|---|---|
richResponse |
RichResponse |
חובה. מכיל את התשובה שלך ל-CheckoutRequestMessage או ל-SubmitOrderRequestMessage. |
CheckoutResponse
בטבלה הבאה מפורטים המאפיינים של הסוג CheckoutResponse
:
נכס | סוג | תיאור | |
---|---|---|---|
proposedOrder |
ProposedOrder |
חובה. ההזמנה המוצעת לשימוש עבור העסקה. |
|
paymentOptions |
PaymentOptions |
חובה. אפשרות התשלום שהוגדרה כברירת מחדל למשתמש. |
|
additionalPaymentOptions |
רשימה<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 |
רשימה<Item > |
חובה. צריך לכלול בדיוק פריט אחד. |
StructuredResponse
עבור Checkout responseMessage, דוגמה זו יכולה להיות אחת מהאפשרויות הבאות: CheckoutRecipient (תגובה של Checkout)" מצביע על כך שתהליך התשלום בוצע בהצלחה. OR FoodErrorExtension: מצביע על כשל במהלך התשלום. התגובה עשויה לכלול תיקון של הצעות מסוג ProposedOrder ו-PaymentOptions, או הודעת שגיאה ללא אפשרויות PaymentOptions. לגבי SubmitOrderOrderMessage, רק האפשרות orderUpdate רלוונטית.
בטבלה הבאה מפורטים המאפיינים של הסוג StructuredResponse
:
נכס | סוג | תיאור | |
---|---|---|---|
נדרשת בדיוק אחת מקבוצות הנכסים הבאות. | |||
checkoutResponse |
קבוצה 1 | CheckoutResponse |
פריטים שנרכשו, מיסים והנחות. |
error |
קבוצה 2 | FoodErrorExtension |
שגיאות שזוהו בפריטי עגלת הקניות. בהתאם לאופי השגיאה, המאפיין הזה יכול לכלול תיקונים מסוג ProposedOrder ו-PaymentOptions, או רק הודעת שגיאה ללא PaymentOptions. |
orderUpdate |
קבוצה 3 | OrderUpdate |
עדכונים אסינכרוניים של הזמנות
בקטע הזה מתוארים הסוגים העיקריים שמרכיבים את הבקשות והתגובות של אינטראקציה מובנית של הזמנת אוכל.AsyncOrderUpdateRequestMessage
מודיע למשתמש על שינויים לאחר שהזמנה נשלחת ומאשרת. לדוגמה, אפשר להודיע למשתמש שההזמנה בדרך או שהמחיר השתנה. למידע נוסף, ראהבטבלה הבאה מפורטים המאפיינים של הסוג AsyncOrderUpdateRequestMessage
:
נכס | סוג | תיאור | |
---|---|---|---|
isInSandbox |
בוליאני |
מציין שההזמנה שעבורה נשלח העדכון הזה היא תשלום ב-Sandbox. |
|
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 |
מגבלה |
סוג התוסף הזה. השדה הזה תמיד מוגדר ל-"type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension". ערך: |
|
estimatedFulfillmentTimeIso8601 |
String |
הזמן המשוער שבו ההזמנה תימסר או תהיה מוכנה לאיסוף. המחרוזת צריכה להיות בפורמט ISO 8601 ועליה להתאים למרווח זמן ולא לזמן קבוע אחד. המוסכמות המקובלות הן: מרווחי זמן, משכי זמן ותאריכים/שעות. ניתן לשלוח את השדה הזה בשדות SubmitOrderRateMessage או AsyncOrderUpdateRequestMessage כשהמידע הופך לזמין או כשיש שינוי, לדוגמה, הגעה מוקדמת או עיכוב בהגעה. לדוגמה: |
|
foodOrderErrors |
רשימה<FoodOrderError > |
מתאר את השגיאות שהתרחשו לאחר ההזמנה. מומלץ להשתמש בשגיאה אחת לכל עגלת קניות או לכל פריט. אם יש שגיאות שלא מכוסות ב-DeclineionInfo, יש להשתמש ב-FoodOrderUpdateExtension.FoodOrderErrors. אפשר לכלול עד פריט אחד. |
בדוגמה הבאה מוצג רכיב 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. לדוגמה, יכול להיות שלא יהיה לך userpageOrderId עד שההזמנה תאושר על ידי המסעדה. לאחר האישור, עליך לשלוח 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 |
List<Const> | חובה. שדות נתמכים לאימות עסקה בכרטיס. אפשר לכלול עד פריט אחד. |
|
allowedCardNetworks |
רשימה<AllowedCardNetworks > |
חובה. לפחות אחת מרשתות הכרטיסים שנתמכות על ידי Google Pay API. אפשר לכלול עד פריט אחד. |
|
billingAddressRequired |
בוליאני |
יש להגדיר את הערך כ-True אם נדרשת כתובת לחיוב. יש לבקש כתובת לחיוב רק אם היא נדרשת לעיבוד העסקה. בקשות לקבלת נתונים נוספים יכולות להקל על תהליך התשלום ולהוביל לשיעורי המרה נמוכים יותר. |
|
billingAddressParameters |
BillingAddressParameters |
השדות הצפויים שמוחזרים אם billingAddressAddress מוגדר כ-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 | חובה. מחרוזת בקידוד בסיס 64 שמכילה את אסימון התשלום לחיוב המשתמש במעבד של 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 |
רשימה<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 |
מספר חשבון Merchant ב-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 |
מגבלה | חובה. גרסת API ראשית. ערך: |
|
apiVersionMinor |
מגבלה | חובה. גרסת ה-API המשנית. ערך: |
|
merchantInfo |
MerchantInfo |
חובה. (מספר חשבון Merchant ב-Google Pay) מידע על המוכר שמבקש נתוני תשלום. |
|
allowedPaymentMethods |
רשימה<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 כאפשרות תשלום ב-Checkout ResponseMessage. |
בדוגמה הבאה מוצג רכיב 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 |
מגבלה | חובה. מזהה קצר של אמצעי התשלום הנתמך. רק 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 |
מגבלה | חובה. |
|
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. זהו שדה חובה כששולחים קריאות חוזרות (callback) ל-Google Transaction Events API. |
|
totalPriceStatus |
מגבלה | חובה. שימוש בערך 'EstimatedD' כברירת המחדל. המחיר הכולל עשוי להשתנות על סמך פרטי התשובה, למשל מס מכירה שייגבה על סמך כתובת לחיוב. ערך: |
|
totalPrice |
String | חובה. הערך הכספי הכולל של העסקה עם דיוק עשרוני (אופציונלי) של שתי ספרות אחרי הנקודה העשרונית. שדה זה צריך להיות זהה לערך שלcart.totalPrice. |
בדוגמה הבאה מוצג רכיב TransactionInfo
:
דוגמה
{ "totalPriceStatus": "ESTIMATED", "totalPrice": "12.34", "currencyCode": "USD" }