أنواع القواعد
سلة التسوق
تحتوي على تفاصيل الطلب، بالإضافة إلى ما إذا كان الطلب مخصّصًا للاستلام أو التسليم. تحتوي سلة التسوق أيضًا على تفاصيل التسليم والربح والتسليم الخاص بك. يتم تحديد الكائن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 |
اسم الشخص الذي يتلقّى الطلب، كما تريد أن يتم عرضه يمكنك استخدام هذا الحقل إذا لم يتم تحديد الاسم الأول واسم العائلة. مثلاً: |
|
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#Comd_date_and_time_representations. استخدِم هذا الخيار لتعديل الوقت المقدَّر للتسليم أثناء الردّ على عملية الدفع. مثلاً: |
يوضّح المثال التالي عنصر DeliveryInfo
:
مثال
{ "deliveryTimeIso8601": "PT90M" }
إخلاء المسؤولية
ويسرد الجدول التالي سمات النوع Disclaimer
:
الموقع | النوع | الوصف | |
---|---|---|---|
predefinedMessage |
PredefinedMessage |
مطلوب. عرض رسائل إخلاء المسؤولية المحدَّدة مسبقًا أثناء الدفع |
|
feeAmount |
Money |
سيحصّل الشريك من التاجر رسومًا بقيمة N مقابل هذا الطلب. |
|
feeAmountRange |
FeeAmountRange |
سيحصّل الشريك رسومًا من المطعم مقابل كل طلب من N إلى M. |
|
feePercent |
Number |
سيحصّل الشريك من التاجر رسومًا بنسبة% 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 } }
المثال الخامس
{ "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
: يحتوي السطر أو FulfillmentOption أو العرض الترويجي على بيانات غير صالحة.NOT_FOUND
: لا يمكن العثور على LineItem أو FulfillmentOption أو عرض ترويجي.PRICE_CHANGED
: تغيّر سعر السلعة
FeeAmountRange
ويسرد الجدول التالي سمات النوع FeeAmountRange
:
الموقع | النوع | الوصف | |
---|---|---|---|
minFeeAmount |
Money |
الحد الأدنى لمبلغ الرسوم المفروضة. |
|
maxFeeAmount |
Money |
الحد الأقصى لمبلغ الرسوم المفروضة.. |
FeePercentRange
ويسرد الجدول التالي سمات النوع FeePercentRange
:
الموقع | النوع | الوصف | |
---|---|---|---|
minFeePercent |
Number |
الحد الأدنى للنسبة المئوية للرسوم التي يتم تحصيلها |
|
maxFeePercent |
Number |
الحد الأقصى للنسبة المئوية للرسوم التي يتم تحصيلها. |
FoodCartExtension
تحتوي على تفاصيل حول المستخدم، مثل الإعدادات المفضّلة لتوصيل الطلبات.
ويسرد الجدول التالي سمات النوع FoodCartExtension
:
الموقع | النوع | الوصف | |
---|---|---|---|
@type |
الثابت |
نوع هذه الإضافة. يتم دائمًا ضبط هذا الحقل على "type.googleapis.com/google.actions.v2.orders.FoodCartExtension". القيمة: |
|
contact |
Contact |
معلومات الاتصال الخاصة بالشخص الذي يتلقّى الطلب تتضمّن التفاصيل اسم المستخدم ورقم هاتفه وعنوان بريده الإلكتروني. |
|
fulfillmentPreference |
FulfillmentOption |
مطلوب. الإعداد المفضّل لتوصيل الطلبات لدى المستخدم |
|
location |
Location |
في CheckoutRequestMessage، يحدد هذا الحقل عنوان التسليم، وهو مطلوب إذا كان الطلب للتسليم. بالنسبة إلى طلبات الطعام السفري أو الاستلام، لا يتم تضمين هذا الحقل في الرسالة. |
يوضّح المثال التالي عنصر FoodCartExtension
:
مثال 1
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P0M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } }
مثال 2
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "pickup": { "pickupTimeIso8601": "P0M" } } }, "contact": { "displayName": "Lovefood Ordering", "email": "ilovefood@example.com", "phoneNumber": "+16501234567" } }
FoodErrorExtension
يحدّد خطأ واحدًا أو أكثر حدث أثناء معالجة الطلب. ويوضّح الجدول التالي حقول النوعFoodErrorExtension
.
يمكن إرسال الأخطاء في CheckoutResponse
.
ويسرد الجدول التالي سمات النوع FoodErrorExtension
:
الموقع | النوع | الوصف | |
---|---|---|---|
@type |
الثابت | مطلوب. نوع هذه الإضافة. القيمة: |
|
foodOrderErrors |
القائمة<FoodOrderError > |
مطلوب. مصفوفة من عناصر FoodOrderError تصف الأخطاء التي حدثت. يُنصح باستخدام خطأ واحد لكل سلة تسوّق أو لكل عنصر. يجب ألا يقل عدد العناصر عن عنصر واحد. |
|
correctedProposedOrder |
ProposedOrder |
مطلوب في حال
طلب مقترح جديد يحتوي على تصحيحات يمكنك عرض هذا الكائن إذا كانت هناك أخطاء قابلة للاسترداد في طلب ProposedOrder الأصلي. على سبيل المثال، يُعدّ تغيير سعر عنصر واحد أو أكثر في سلة التسوّق خطأً يمكن استرداده. يتم نقل الأخطاء التي يمكن استردادها باستخدام ProposedOrder صالح إلى مرحلة التأكيد، بدلاً من مطالبة المستخدم بمراجعة سلة التسوق. |
|
paymentOptions |
PaymentOptions |
مطلوب في حال
خيارات الدفع التلقائية المحدّدة للمستخدم |
|
additionalPaymentOptions |
القائمة<PaymentOptions > |
خيارات الدفع البديلة المتاحة للمستخدم. |
يوضّح المثال التالي عنصر FoodErrorExtension
:
مثال
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodErrorExtension", "foodOrderErrors": [ { "error": "PRICE_CHANGED", "id": "sample_item_offer_id_1", "description": "The price has changed.", "updatedPrice": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, { "error": "PRICE_CHANGED", "id": "sample_item_offer_id_2", "description": "The price has changed.", "updatedPrice": { "currencyCode": "USD", "units": "8" } } ], "correctedProposedOrder": { "id": "sample_corrected_proposed_order_id_1", "otherItems": [ { "name": "New customer discount", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "-5", "nanos": -500000000 } }, "type": "DISCOUNT" }, { "name": "Delivery fee", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "3", "nanos": 500000000 } }, "type": "DELIVERY" }, { "name": "Tax", "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "1", "nanos": 500000000 } }, "type": "TAX" } ], "cart": { "merchant": { "id": "https://www.exampleprovider.com/merchant/id1", "name": "Falafel Bite" }, "lineItems": [ { "name": "Pita Chips", "type": "REGULAR", "id": "sample_item_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/offer/id1", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "2", "nanos": 750000000 } }, "subLines": [ { "note": "Notes for this item." } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1 } ] } }, { "name": "Chicken Shwarma Wrap", "type": "REGULAR", "id": "sample_item_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/offer/id2", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "8" } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Greek Salad", "type": "REGULAR", "id": "sample_item_offer_id_3", "offerId": "https://www.exampleprovider.com/menu/item/offer/id3", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "9", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } }, { "name": "Prawns Biryani", "type": "REGULAR", "id": "sample_item_offer_id_4", "offerId": "https://www.exampleprovider.com/menu/item/offer/id4", "quantity": 1, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "15", "nanos": 990000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension" } } ], "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension", "fulfillmentPreference": { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } } }, "location": { "coordinates": { "latitude": 37.788783, "longitude": -122.41384 }, "formattedAddress": "1350 CHARLESTON ROAD, MOUNTAIN VIEW, CA, United States", "zipCode": "94043", "city": "Mountain View", "postalAddress": { "regionCode": "US", "postalCode": "94043", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1350 Charleston Road" ] }, "notes": "Gate code is #111" } } }, "totalPrice": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "36", "nanos": 730000000 } }, "extension": { "@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension", "availableFulfillmentOptions": [ { "fulfillmentInfo": { "delivery": { "deliveryTimeIso8601": "P90M" } }, "expiresAt": "2017-07-17T12:30:00Z" } ] } }, "paymentOptions": { "googleProvidedOptions": { "tokenizationParameters": { "tokenizationType": "PAYMENT_GATEWAY", "parameters": { "gateway": "stripe", "stripe:publishableKey": "pk_live_stripe_client_key", "stripe:version": "2017-04-06" } }, "supportedCardNetworks": [ "AMEX", "DISCOVER", "MASTERCARD", "JCB", "VISA" ], "prepaidCardDisallowed": true } } }
FoodItemExtension
لتحديد الإضافات الخاصة بأصناف الطعام.
ويسرد الجدول التالي سمات النوع FoodItemExtension
:
الموقع | النوع | الوصف | |
---|---|---|---|
@type |
الثابت | مطلوب. نوع هذه الإضافة. يتم دائمًا ضبط هذا الحقل على "type.googleapis.com/google.actions.v2.orders.FoodItemExtension". القيمة: |
|
options |
القائمة<FoodItemOption > |
يمكن أن يكون الخيار عنصرًا إضافة أو مجموعة إضافات تحتوي على مجموعة من الإضافات. |
يوضّح المثال التالي عنصر FoodItemExtension
:
مثال
{ "@type": "type.googleapis.com/google.actions.v2.orders.FoodItemExtension", "options": [ { "id": "sample_addon_offer_id_1", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id1", "name": "Honey Mustard", "price": { "currencyCode": "USD" }, "quantity": 1 }, { "id": "sample_addon_offer_id_2", "offerId": "https://www.exampleprovider.com/menu/item/addon/offer/id2", "name": "BBQ Sauce", "price": { "currencyCode": "USD", "nanos": 500000000 }, "quantity": 1, "subOptions": [ { "id": "10239138", "offerId": "912391723", "name": "Fries", "price": { "currencyCode": "USD", "units": "2", "nanos": 230000000 }, "quantity": 1 } ] } ] }
FoodItemOption
ويسرد الجدول التالي سمات النوع FoodItemOption
:
الموقع | النوع | الوصف | |
---|---|---|---|
id |
String |
المعرّف الفريد الذي عيّنته Google. عند إرسال FoodOrderError أو AsyncOrderUpdateRequest، استخدم هذا الحقل للتمييز في الحالات التي تحتوي فيها سلة التسوق على أكثر من عنصر له معرّف العرض نفسه. مثلاً: |
|
offerId |
String |
معرّف العرض للسلعة. مثلاً: |
|
name |
String |
اسم الخيار. مثلاً: |
|
price |
Money |
||
note |
String |
ملاحظة ذات صلة بالخيار |
|
quantity |
Number |
بالنسبة إلى خيارات العناصر، عدد العناصر. مثلاً: |
|
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 |
عدد صحيح | مطلوب في حال
الكمية الجديدة المتاحة للسلعة التي تسببت في حدوث الخطأ هذا الإجراء مطلوب فقط عندما يكون الخطأ "غير صالح". أو "NOT_FOUND". يجب أن تكون القيمة صفرًا لعبارة "غير صالح" و"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 |
منطقي |
طلب المستخدم تفعيل قنوات التسويق الخاصة بك لا يمكنك تلقائيًا إرسال محتوى تسويقي بدون موافقة المستخدم. إذا كانت قيمة optinForتجديد النشاط التسويقي صحيحة، يمكنك الاشتراك للمستخدم. إذا كانت قيمة optinForتجديد النشاط التسويقي غير متوفّرة أو غير متوفّرة، عليك إبقاء حالة الاشتراك في نظامك كما هي. ولا يمكن للمستخدمين إلغاء الاشتراك من خلال Google، ولكن فقط من خلال وظيفة إلغاء الاشتراك المتوفرة في قنوات التسويق الخاصة بك. لا تتوفّر هذه العلامة إلا في SendOrderRequestMessage. |
يوضّح المثال التالي عنصر 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 بكسل كحدّ أدنى. للحصول على أفضل النتائج، استخدِم صورة لا يقلّ حجمها عن 216×216 بكسل. يجب ألا يزيد حجم الصورة عن 6 ميغابايت و64 ميغابكسل. |
LineItem
لتحديد محتويات سلة التسوق (Cart.lineItems
) أو الرسوم الإضافية لإحدى
الطلب (ProposedOrder.otherItems
).
ويسرد الجدول التالي سمات النوع LineItem
:
الموقع | النوع | الوصف | |
---|---|---|---|
id |
String | مطلوب في حال
بالنسبة إلى عنصر LineItem في سلة تسوّق (ProposedOrder.cart.lineItems[0].id)، يكون هذا هو المعرّف الفريد الذي أنشأته Google عند إنشاء الطلب. بالنسبة إلى عنصر LineItem في ProposedOrder (ProposedOrder.otherItems[0].id)، يُستخدم لإضافة عناصر مثل رسوم التسليم والضرائب، يحدد المزود قيمة المعرّف. على سبيل المثال، في عربة التسوق هناك عنصران من نفس العناصر بتعليمات تحضير مختلفة (مثل بيتزا متوسطة مع مجموعات مختلفة من الإضافات). في هذه الحالة، يتضمّن كلا العنصرَين معرّف العرض الأساسي نفسه. عند إرسال طلب تعديل طلب للإشارة إلى أنّه تم رفض سلعة معيّنة، استخدِم هذا المعرّف كأداة تمييز. بمعنى آخر، إذا تم رفض إحدى قطع البيتزا لأنها تفتقر إلى جزء معين، فإن المعرّف يساعد Google على تحديد السلعة بالترتيب الذي تشير إليه. هذا الحقل مطلوب باستثناء العناصر الأخرى. |
|
name |
String | مطلوب. اسم العنصر وهذه السلسلة مرئية للمستخدم، ويجب أن تكون بالأحرف الأبجدية إذا أمكن (مثل "رسوم التسليم" أو "رسوم الخدمة" أو "الضريبة"). هذا الحقل مقتطَع إلى 100 حرف للمستخدمين. |
|
type |
LineItemType |
مطلوب. |
|
quantity |
عدد صحيح | مطلوب في حال
عدد السلع المضمّنة في العرض لا ينطبق هذا الخيار على ProposedOrder.otherItems. |
|
description |
String |
وصف السلعة |
|
price |
Price |
مطلوب. سعر السلعة أو السلع تعكس هذه القيمة السعر الإجمالي لجميع السلع أو الخدمات لهذا العنصر (بمعنى آخر، أضف تكلفة أي إضافات واضربها في الكمية). على سبيل المثال: إذا كانت سلعة بقيمة 10 ريال سعودي تحتوي على كمية من 3 ريالات، سيكون السعر 30 ريال سعودي. سعر بيتزا واحدة بسعر أساسي يبلغ 5 دولار أمريكي وإضافة دولار أمريكي واحد، سيكون السعر 6 دولار أمريكي. بالنسبة إلى قطعتين من البيتزا (الكمية = 2) بسعر أساسي يبلغ 5 دولار أمريكي ولكل منهما إضافة إضافية بقيمة دولار أمريكي، سيكون السعر 12 دولار أمريكي. يجب أن يكون لكل عنصر سعر، حتى إذا كان السعر "0". عندما يكون النوع هو DISCOUNT، يجب تحديد القيمة على أنّها سالبة (على سبيل المثال، "2-"). |
|
subLines |
القائمة<SublineNote > |
اختيارية وصالحة فقط إذا كان النوع "REGULAR". يمكن إرسال ملاحظة خاصة بالسلعة من المستخدم في هذا الحقل ضمن طلب الدفع وطلب إرسال الطلب. تأكَّد من أنّ التاجر يتلقّى الملاحظة عند تقديمها. وسيكون في الطلب على هيئة 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
: عنصر العرض المجاني هذه الرسائل محجوزة بشكل عام لنصيحة من اختيار المستخدم. يسري هذا العرض على 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 |
تمثّل هذه السمة الوحدات الكاملة للمبلغ. على سبيل المثال، إذا كان رمز العملة هو "USD"، يكون "1". دولار أمريكي واحد. مثلاً: |
|
nanos |
عدد صحيح |
عدد وحدات نانو (10^-9) من الكمية. يجب أن تتراوح القيمة بين -999,999,999 و +999,999,999، بشكل شامل. استخدم القواعد التالية: إذا كانت الوحدات موجبة، يجب أن تكون وحدات nanos موجبة أو صفرًا. إذا كانت الوحدات صفرًا، قد تكون وحدات نانو موجبة أو صفرية أو سالبة. إذا كانت الوحدات سالبة، يجب أن تكون وحدات نانو سالبة أو صفرًا. على سبيل المثال، يتم تمثيل $1.75 على النحو التالي: الوحدات = -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 | مطلوب. المعرّف الفريد للطلب في نظام الدمج المُستخدَم لتحديد الترتيب الذي تم إرسال التحديث بناءً عليه إذا لم يتم تقديم invoice.user_visible_order_id مرة واحدة على الأقل في OrderUpdate وذلك لـ "CREATED". سيكون هذا المعرف هو المعرّف المرئي الذي تم إدخاله للمستخدم والمعروض في بطاقة طلب Google. |
|
orderState |
OrderState |
مطلوب. الحالة الجديدة للطلب. |
|
lineItemUpdates |
Map<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#Comd_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
ردّك على صفحة دفع سلة التسوّق أو SendOrderRequestMessage
ويسرد الجدول التالي سمات النوع FinalResponse
:
الموقع | النوع | الوصف | |
---|---|---|---|
richResponse |
RichResponse |
مطلوب. يحتوي على ردك على CheckoutRequestMessage أو SendOrderRequestMessage. |
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." } } ] }
المنتج/الخدمة
يحتوي على ردّك على عملية دفع سلة التسوّق أو SendOrderRequestMessage.
ويسرد الجدول التالي سمات النوع Item
:
الموقع | النوع | الوصف | |
---|---|---|---|
structuredResponse |
StructuredResponse |
مطلوب. |
RichResponse
يحتوي على ردّك على صفحة الدفع في سلة التسوّق
ويسرد الجدول التالي سمات النوع RichResponse
:
الموقع | النوع | الوصف | |
---|---|---|---|
items |
القائمة<Item > |
مطلوب. يجب أن يحتوي على عنصر واحد بالضبط. |
StructuredResponse
بالنسبة إلى CheckoutResponseMessage، يمكن أن تكون هذه إحدى القيم التالية: يشير CheckoutResponse إلى عملية دفع ناجحة. أو FoodErrorExtension: يشير إلى تعذُّر أثناء الدفع. وقد يتضمّن الردّ طلب ProposedOrder وPaymentOptions المصحّحين أو رسالة خطأ بدون خيارات PaymentOptions. بالنسبة إلى SendOrderResponseMessage، يمكن استخدام قيمة 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 |
الثابت |
نوع هذه الإضافة. يتم دائمًا ضبط هذا الحقل على "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension". القيمة: |
|
estimatedFulfillmentTimeIso8601 |
String |
الوقت المقدَّر الذي سيتم فيه تسليم الطلب أو عندما يكون جاهزًا للاستلام يجب أن تكون السلسلة بتنسيق ISO 8601 ويجب أن تتوافق مع فاصل زمني وليس وقتًا ثابتًا واحدًا. الاصطلاحات المقبولة هي: الفواصل الزمنية والمدد والتواريخ/الأوقات. يمكن إرسال هذا الحقل في SendOrderResponseMessage أو 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 |
استخدام المقدَّرةFulfillmentTimeIso8601 في رسالة FoodOrderingUpdateExtension |
pickupTime |
المجموعة 2 | الطابع الزمني ISO |
استخدام المقدَّرةFulfillmentTimeIso8601 في رسالة FoodOrderingUpdateExtension |
يوضّح المثال التالي عنصر FulfillmentInfo
:
مثال 1
{ "deliveryTime": "2017-05-10T02:36:38.803Z" }
مثال 2
{ "pickupTime": "2019-12-26T07:24:27.803Z" }
InTransitInfo
ويسرد الجدول التالي سمات النوع InTransitInfo
:
الموقع | النوع | الوصف | |
---|---|---|---|
updatedTime |
الطابع الزمني ISO |
استخدام المقدَّرةFulfillmentTimeIso8601 في رسالة FoodOrderingUpdateExtension |
يوضّح المثال التالي عنصر InTransitInfo
:
مثال
{ "updatedTime": "2017-05-10T02:36:38.803Z" }
LineItemUpdate
ويسرد الجدول التالي سمات النوع LineItemUpdate
:
الموقع | النوع | الوصف | |
---|---|---|---|
orderState |
OrderState |
||
price |
Price |
||
reason |
String |
سبب التغيير. مطلوب لتغيير السعر |
يوضّح المثال التالي عنصر LineItemUpdate
:
مثال
{ "orderState": { "state": "CONFIRMED", "label": "Provider confirmed" }, "price": { "type": "ESTIMATE", "amount": { "currencyCode": "USD", "units": "5", "nanos": 500000000 } }, "reason": "Menu updated prices." }
OpenUrlAction
ويسرد الجدول التالي سمات النوع OpenUrlAction
:
الموقع | النوع | الوصف | |
---|---|---|---|
url |
String | مطلوب. يشير ذلك المصطلح إلى الإجراء الذي تم تشغيله من خلال النقر على الزر أو لمسه. تعتمد قائمة البادئات السارية على orderManagementActionType. "EMAIL": يجب أن تكون البادئة "mailto". "CALL": يجب أن تكون البادئة "tel". "CUSTOMER_SERVICE": يجب أن تكون البادئة "mailto" أو "tel" أو "http" أو "https". مثلاً: |
OrderManagementAction
تمكّن إدارة الطلبات المستخدمين من الحصول على الدعم في مرحلة ما بعد الطلب ويجب إرسالها
كل OrderUpdate
ضمن طلب الإرسال
AppResponse
وستبدأ كل
AsyncOrderUpdateRequestMessage
يمكن أن تختلف إجراءات إدارة الطلبات المُرسَلة لطلب معيّن استنادًا إلى
الولاية.
على سبيل المثال، في العمود "CREATED" الحالة، فقد تشير CUSTOMER_SERVICE
إلى
رقم هاتف دعم العملاء. بعد ذلك، في الحقل "مؤكّدة" الولاية، CUSTOMER_SERVICE
يمكنك التغيير إلى هاتف المطعم إذا أصبح ذلك أفضل
الاتصال بالعميل. وبالمثل، عندما يكون الطلب في "FULFILLED" والولاية
يمكن أن ترجع "CUSTOMER_SERVICE
" إلى عناوين البريد الإلكتروني المخصّصة لفريق الدعم.
ويسرد الجدول التالي سمات النوع OrderManagementAction
:
الموقع | النوع | الوصف | |
---|---|---|---|
type |
OrderManagementActionType |
مطلوب. |
|
button |
Button |
مطلوب. |
يوضّح المثال التالي عنصر OrderManagementAction
:
مثال 1
{ "type": "CUSTOMER_SERVICE", "button": { "title": "Contact customer service", "openUrlAction": { "url": "mailto:support@example.com" } } }
مثال 2
{ "type": "EMAIL", "button": { "title": "Email restaurant", "openUrlAction": { "url": "mailto:person@example.com" } } }
OrderManagementActionType
يحدد الأنواع ذات الصلة بـOrderManagementAction
.
يحتوي النوع OrderManagementActionType
على القيم المحتملة التالية:
CUSTOMER_SERVICE
: رقم البريد الإلكتروني و/أو رقم التواصل مع فريق خدمة العملاء لعرضه في صفحة تأكيد الطلب. إنّ هذا الإجراء مطلوب. يجب أن تكون بادئة openUrlAction.url "mailto" أو "tel" أو "http" أو "https".EMAIL
: يتم إرسال إجراء بالبريد الإلكتروني على صفحة تفاصيل الطلب فقط. يجب أن تكون البادئة openUrlAction.url هي "mailto".CALL_DRIVER
: إجراء طلب على صفحة تفاصيل الطلب فقط يجب أن تكون بادئة openUrlAction.url هي "tel".CALL_RESTAURANT
: إجراء طلب على صفحة تفاصيل الطلب فقط يجب أن تكون بادئة openUrlAction.url هي "tel".
OrderState
الحالة الحالية للطلب. كل قيمة state
بقيمة OrderState
أيضًا
مع حالة الشراء على
myaccount.google.com
ويسرد الجدول التالي سمات النوع OrderState
:
الموقع | النوع | الوصف | |
---|---|---|---|
state |
OrderStateEnum |
مطلوب. |
|
label |
String | مطلوب. سلسلة العرض المرئية للمستخدم الخاصة بالحالة استخدِم حالة أحرف الجملة. مثلاً: |
يوضّح المثال التالي عنصر OrderState
:
مثال
{ "state": "CONFIRMED", "label": "Provider confirmed" }
OrderStateEnum
يحدد الأنواع ذات الصلة بـOrderState
.
يحتوي النوع OrderStateEnum
على القيم المحتملة التالية:
CREATED
: الطلب الذي أنشأته شركة الدمج في انتظار تأكيد من مقدّم الخدمة. يتجاوب مع "تم الطلب" حالة الشراء.CONFIRMED
: أكّد موفّر الخدمة الطلب وأصبح نشطًا. يتوافق مع "مقبولة" حالة الشراء.REJECTED
: رفضت شركة الدمج أو مقدّم الخدمة الطلب. يتجاوب مع "مرفوض" حالة الشراء.CANCELLED
: ألغى المستخدم الطلب. يتجاوب مع "تم الإلغاء" حالة الشراء.IN_PREPARATION
: يتم تحضير الطعام. يتوافق مع "الحالة غير معروفة" حالة الشراء.READY_FOR_PICKUP
: الطعام جاهز للاستلام. يتطابق مع عبارة "جاهز للاستلام" حالة الشراء.IN_TRANSIT
: يتمّ تسليم الطلب. يتجاوب مع "قيد التقدم" حالة الشراء.FULFILLED
: تشير هذه الحالة إلى أنّ المستخدم استلم ما تم طلبه. يتوافق مع "تم استلام الطلب" حالة الشراء.
الوصل
إرسال هذا النوع في طلب إرسالAppResponse
حيث تكون قيمة OrderState
هي "CONFIRMED" أو "FULFILLED" أو "IN_TRANSIT". إرسال الإيصال على
الوقت الذي يصبح فيه userVisibleOrderId
متاحًا. لا تحتاج إلى الاحتفاظ
إرسال الإيصال في التحديثات اللاحقة.
ويسرد الجدول التالي سمات النوع Receipt
:
الموقع | النوع | الوصف | |
---|---|---|---|
userVisibleOrderId |
String | مطلوب. مطلوبة إذا كان الطلب "CONFIRMED" أو "IN_TRANSIT" أو "FULFILLED". هذا الحقل هو المعرّف الفردي الموجّه للمستخدمين (والذي يكون عادةً هو معرّف الطلب الخاص بالمطعم)، ويظهر في كلّ من إيصال شركة الدمج وبطاقة طلب Google. يجب أن يتمكّن المستخدم من استخدام رقم التعريف هذا للإشارة إلى طلبه الخاص بخدمة العملاء لدى مقدّم الخدمة وشركة الدمج. ما عليك سوى تقديم هذا المعرّف مرة واحدة فقط في أي OrderUpdate محدّد. إلى أن يتم توفير هذه السمة، يكون الإجراء ActionOrderId هو uservisibleOrderId. على سبيل المثال، قد لا يتوفّر لديك userمرئيOrderId إلى أن يؤكد المطعم الطلب. بعد التأكيد، يجب إرسال AsyncOrderUpdateRequestMessage مع رسالة OrderUpdate وإيصال. |
يوضّح المثال التالي عنصر Receipt
:
مثال
{ "userVisibleOrderId": "userVisibleId1234" }
RejectionInfo
ويسرد الجدول التالي سمات النوع RejectionInfo
:
الموقع | النوع | الوصف | |
---|---|---|---|
type |
RejectionType |
مطلوب. |
|
reason |
String |
سبب الرفض المستخدم في التسجيل الداخلي. لا يظهر هذا الحقل للمستخدمين. |
يوضّح المثال التالي عنصر RejectionInfo
:
مثال
{ "type": "PAYMENT_DECLINED", "reason": "There is an issue with payment processing." }
RejectionType
يحتوي النوع RejectionType
على القيم المحتملة التالية:
INELIGIBLE
: المستخدم غير مؤهّل بسبب مشاكل متعلقة بالسياسة أو المخاطر.PAYMENT_DECLINED
: حدثت مشكلة في معالجة الدفع.UNAVAILABLE_SLOT
: لا يمكن تقديم الطلب في الوقت المحدَّد الذي تحدّده شركة DeliveryInfo أو PickupInfo.PROMO_NOT_APPLICABLE
: ثمة مشكلة في العرض الترويجي.UNKNOWN
: أي سبب آخر
الأنواع ذات الصلة بالدفع
يوضّح هذا القسم الأنواع المتعلقة بالدفع المُستخدَمة في طلب الطعام. التنفيذ.ActionProvidedPaymentOptions
متطلبات طريقة الدفع التي تتطلّب اتخاذ إجراء
ويسرد الجدول التالي سمات النوع ActionProvidedPaymentOptions
:
الموقع | النوع | الوصف | |
---|---|---|---|
paymentType |
PaymentType |
مطلوب. |
|
displayName |
String | مطلوب. اسم وسيلة الدفع المعروض في الإيصال. مثلاً: |
|
onFulfillmentPaymentData |
OnFulfillmentPaymentData |
بيانات إضافية لسمة نوع الدفع "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: الاسم ورمز البلد والرمز البريدي. FULL: الاسم وعنوان الشارع والمنطقة المحلية ورمز البلد والرمز البريدي. |
يوضّح المثال التالي عنصر BillingAddressParameters
:
مثال 1
{ "format": "MIN" }
مثال 2
{ "format": "FULL" }
CardParameters
يمكنك استخدام هذا العنصر لضبط توافق موقعك الإلكتروني مع Google Pay API.
ويسرد الجدول التالي سمات النوع CardParameters
:
الموقع | النوع | الوصف | |
---|---|---|---|
allowedAuthMethods |
القائمة<Const> | مطلوب. الحقول المتاحة لمصادقة معاملة البطاقة. يجب ألا يقل عدد العناصر عن عنصر واحد. |
|
allowedCardNetworks |
القائمة<AllowedCardNetworks > |
مطلوب. شبكة بطاقة واحدة أو أكثر متاحة في Google Pay API يجب ألا يقل عدد العناصر عن عنصر واحد. |
|
billingAddressRequired |
منطقي |
يمكنك الضبط على "صحيح" إذا كنت تطلب عنوان إرسال الفواتير. لا تطلب عنوان إرسال الفواتير إلا إذا طُلب منك ذلك من أجل معالجة المعاملة. يمكن أن تزيد طلبات البيانات الإضافية من المعوقات في عملية الدفع وتؤدي إلى انخفاض معدلات الإحالات الناجحة. |
|
billingAddressParameters |
BillingAddressParameters |
الحقول المتوقّعة التي يتم عرضها في حال ضبط سمة billingAddressمطلوبة على "صحيح". |
|
cvcRequired |
منطقي |
يتم الضبط على "صحيح" في حال استخدام TimesofMoney، وعلى "خطأ" لجميع الجهات المسؤولة عن معالجة المعاملات الأخرى. |
يوضّح المثال التالي عنصر 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 | مطلوب. سلسلة Base 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 |
معرّف التاجر في Google الصادر لك من Google Pay |
|
merchantName |
String | مطلوب. تم ترميز اسم التاجر بترميز UTF-8. يظهر اسم التاجر في ورقة بيانات الدفع. |
OnFulfillmentPaymentData
استخدِم هذا العنصر لإرسال بيانات إضافية من أجل نوع الدفع "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 |
الثابت | مطلوب. إصدار واجهة برمجة التطبيقات الرئيسية. القيمة: |
|
apiVersionMinor |
الثابت | مطلوب. إصدار واجهة برمجة التطبيقات الثانوية. القيمة: |
|
merchantInfo |
MerchantInfo |
مطلوب. (معرّف التاجر في 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. هذا الحقل مطلوب عند إرسال عمليات الاستدعاء إلى واجهة برمجة تطبيقات أحداث المعاملات في Google. |
|
totalPriceStatus |
الثابت | مطلوب. استخدام القيمة "ESTIMATED" كخيار تلقائي. وقد يتم تعديل السعر الإجمالي استنادًا إلى تفاصيل الردّ، مثل ضريبة المبيعات التي يتم تحصيلها استنادًا إلى عنوان إرسال الفواتير. القيمة: |
|
totalPrice |
String | مطلوب. إجمالي القيمة النقدية للمعاملة مع تحديد دقة عشرية اختيارية في منزلتين عشريتين. يجب أن يكون لهذا الحقل القيمة نفسهاتعبير Cart.totalPrice. |
يوضّح المثال التالي عنصر TransactionInfo
:
مثال
{ "totalPriceStatus": "ESTIMATED", "totalPrice": "12.34", "currencyCode": "USD" }