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