סוגי בסיס
עגלת קניות
מכיל את פרטי ההזמנה, וגם את סוג הבקשה (איסוף או משלוח). עגלת הקניות מכילה גם את פרטי המשלוח, את התשלום על שירות ואת כתובת המשלוח. האובייקטCart
מוגדר בקובץ Checkout AppRequest
.f
אתם צריכים לכלול עותק של עגלת הקניות בקובץ Checkout AppResponse
בטבלה הבאה מפורטים המאפיינים של הסוג Cart
:
נכס | סוג | תיאור | |
---|---|---|---|
@type |
Const |
הסוג של האובייקט. צריך להשמיט את השדה הזה אם אובייקט ההורה 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 או PickupInfo.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 |
List<FoodOrderError > |
חובה. מערך של אובייקטים מסוג FoodOrderError שמתארים את השגיאות שהתרחשו. מומלץ להציג שגיאה אחת לכל עגלת קניות או לכל פריט. חייב להכיל לפחות פריט אחד. |
|
correctedProposedOrder |
ProposedOrder |
חובה כאשר
הצעת הזמנה חדשה עם תיקונים. מחזירים את האובייקט הזה אם יש שגיאות שניתן לשחזר ב-ProposedOrder המקורי. לדוגמה, שינוי במחיר של פריט אחד או יותר בעגלת הקניות הוא שגיאה שניתן לתקן. שגיאות שניתן לתקן עם ProposedOrder תקין מועברות לשלב האישור, במקום לחייב את המשתמש לבדוק את עגלת הקניות. |
|
paymentOptions |
PaymentOptions |
חובה כאשר
אפשרויות התשלום שמוגדרות כברירת מחדל למשתמש. |
|
additionalPaymentOptions |
List<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 |
List<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 | חובה כאשר
עבור פריט עגלת קניות (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$ מיוצג כ-units = -1 ו-nanos = -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 |
הרמה המנהלית הגבוהה ביותר שמשמשת לכתובות דואר של מדינה או אזור. יכול להיות שמדובר במדינה, במחוז, ב-oblast או במחוז. לדוגמה: |
|
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 |
List<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 מציין שהתשלום בוצע בהצלחה. או 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 ולהתאים למרווח זמן ולא לשעה קבועה אחת. המוסכמות הקבילות הן: Intervals (מרווחי זמן), Durations (משכי זמן) ו-Dates/Times (תאריכים/שעות). אפשר לשלוח את השדה הזה ב-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
יכול לשנות את מספר הטלפון של המסעדה אם זהו אמצעי הקשר הטוב ביותר ללקוח. באופן דומה, אחרי שההזמנה תהיה בסטטוס 'הושלמה', 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. |
בדוגמה הבאה מוצג רכיב 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 |
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 |
List<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 |
Const | חובה. כדאי להשתמש ב-'ESTIMATED' (משוער) כברירת מחדל. המחיר הכולל עשוי להשתנות בהתאם לפרטים בתגובה, כמו מס מכירות שנגבה על סמך הכתובת לחיוב. ערך: |
|
totalPrice |
String | חובה. הערך הכולל של העסקה, עם דיוק עשרוני אופציונלי של שני מקומות עשרוניים. הערך בשדה הזה צריך להיות זהה לערך של cart.totalPrice. |
בדוגמה הבאה מוצג רכיב TransactionInfo
:
דוגמה
{ "totalPriceStatus": "ESTIMATED", "totalPrice": "12.34", "currencyCode": "USD" }