- HTTP 请求
- 路径参数
- 请求正文
- 响应正文
- 授权范围
- TextInput
- AudioInput
- EventInput
- DriveOffEvent
- CrewInterjectionEvent
- OrderStateUpdateEvent
- ClientEscalationEvent
- CallerHangupEvent
- PosErrorEvent
- ClientExecutionResult
- FinalizeOrderResponse
- PaymentInfo
- PaymentMethod
- OrderPricesResponse
- ValidateDeliveryAddressResponse
- OrderStatusResponse
- Blob
- 配置
- FeatureGate
- ClientAppInfo
- SessionMode
- TurnType
- BidiProcessOrderResponse
- AgentAudio
- SpeechRecognition
- InterruptionSignal
- AgentEvent
- RestartOrder
- ClientExecutionRequest
- FinalizeOrderRequest
- SubmitOrderRequest
- LoyaltyInfo
- LoyaltyAmount
- OrderPricesRequest
- ValidateDeliveryAddressRequest
- OrderStatusRequest
- UpdatedOrderState
- AgentText
- SuggestedOptions
- SuggestedItems
- SuggestedItem
- SuggestedModifiers
- SuggestedModifier
- SuggestedModifierGroups
- SuggestedModGroup
- SentimentMeasurement
- TurnCompleted
- EndSession
- EndType
执行单轮逻辑来处理用户输入并返回结果。
HTTP 请求
POST https://foodorderingaiagent.googleapis.com/v1/{config.session=projects/*/locations/*/sessions/*}:processOrder
网址采用 gRPC 转码语法。
路径参数
| 参数 | |
|---|---|
config.session |
必需。订单的会话。格式: |
请求正文
请求正文中包含结构如下的数据:
| JSON 表示法 |
|---|
{ "config": { "session": string, "store": string, "laneId": string, "enableEchoCancellation": boolean, "daypartId": string, "featureGate": { "menuResponseEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean }, "clientAppInfo": { "deviceModel": string, "osVersion": string, "sdkVersion": string }, "mode": enum ( |
| 字段 | |
|---|---|
config.store |
必需。下单的商店。格式: |
config.laneId |
可选。特定免下车通道的 ID。 |
config.enableEchoCancellation |
可选。是否为会话启用回声消除功能。如果启用,客户端应在 AudioInput 中提供 customerAudio 和 crewAudio。 |
config.daypartId |
可选。餐单的时段,包括早餐、午餐、晚餐等。这用于确定要用于订单的菜单。 |
config.featureGate |
可选。会话的特性门控。此参数用于为会话启用或停用功能。 |
config.clientAppInfo |
可选。有关客户端应用和设备环境的信息。 |
config.mode |
可选。会话的模式。 |
config.channelType |
可选。用于代理通信的渠道类型。 |
config.enableListenOnlyDualChannel |
可选。是否为会话启用仅限收听的双声道。如果启用,客户端应在 AudioInput 中提供 customerAudio 和 crewAudio,CES 将在媒体处理服务器上执行 EAC 和求和。 |
config.testSessionStartTime |
可选。会话的开始时间,用于测试或评估。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
turnType |
可选。请求在会话生命周期中的位置的明确指示。允许客户端确定性地控制何时注入初次会话设置变量。 |
联合字段 input。来自客户端的输入。input 只能是下列其中一项: |
|
textInput |
来自客户端的文本输入。 |
audioInput |
来自客户端的音频输入。 |
eventInput |
来自客户端的事件输入。 |
clientExecutionResult |
客户端执行请求的结果。 |
blobInput |
通用二进制数据输入。镜像 http://google3/google/cloud/ces/v1main/session_service.proto?l=720 |
响应正文
FoodOrderingService.ProcessOrder 的响应消息。在功能上包含 BidiProcessOrderResponse 中的字段,但不包含流式传输特有的字段。
如果成功,响应正文将包含结构如下的数据:
| JSON 表示法 |
|---|
{
"responses": [
{
object ( |
| 字段 | |
|---|---|
responses[] |
仅限输出。代理对请求的响应列表,按顺序返回。 |
授权范围
需要以下 OAuth 范围:
https://www.googleapis.com/auth/cloud-platform
如需了解详情,请参阅 Authentication Overview。
TextInput
来自客户端的文本输入。客户端也可以向智能体发送文本输入,而不是音频。客户端必须使用文本或音频输入,不能同时使用两者。
| JSON 表示法 |
|---|
{ "text": string } |
| 字段 | |
|---|---|
text |
必需。来自客户端的文本语音。 |
AudioInput
来自客户端的音频输入。输入的音频可能包含多个声道,分别对应客户、机组人员等。这些声道应全部同步,并采用配置中指定的格式。不应包含音频标头。默认情况下,音频应使用 16 位线性 PCM 音频编码和 16000 Hz 采样率。所有通道的总字节数应小于 25600 字节。
| JSON 表示法 |
|---|
{ "customerAudio": string, "crewAudio": string } |
| 字段 | |
|---|---|
customerAudio |
必需。客户音频数据。 使用 base64 编码的字符串。 |
crewAudio |
可选。Crew 音频数据。这是与客户位于同一车道的员工的可选音频通道,用作回声消除的参考音频。 使用 base64 编码的字符串。 |
EventInput
来自客户端的事件输入。这用于在代理中触发特定事件。
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 event。下一个 ID:10 要触发的事件。event 只能是下列其中一项: |
|
driveOffEvent |
驶离事件。 |
crewInterjectionEvent |
机组人员插话事件。 |
updateOrderStateEvent |
客户端对订单状态的更新。 |
clientEscalationEvent |
客户端上报事件。 |
callerHangupEvent |
可选。来电者挂断事件。 |
posErrorInput |
可选。POS 错误事件。 |
DriveOffEvent
驶离事件。这表示客户已驾车离开。此事件发生后,会话将关闭。
| JSON 表示法 |
|---|
{ "reason": string } |
| 字段 | |
|---|---|
reason |
可选。驶离原因,例如“订单已完成”“意外驶离”。 |
CrewInterjectionEvent
机组人员插话事件。这表示有工作人员在会话中插话。此活动结束后,会话将关闭。
| JSON 表示法 |
|---|
{ "mode": string } |
| 字段 | |
|---|---|
mode |
可选。机组人员插话时所用的模式,例如“headset”(耳机)、“pos”(销售终端)。 |
OrderStateUpdateEvent
更新订单状态请求。当订单在客户端更新时(例如,通过传统触摸界面添加或移除商品时),应发送此事件。
| JSON 表示法 |
|---|
{
"order": {
object ( |
| 字段 | |
|---|---|
order |
必需。与此会话关联的订单的更新状态。 |
ClientEscalationEvent
表示客户端正在将会话上报给人工客服。
| JSON 表示法 |
|---|
{ "reason": string } |
| 字段 | |
|---|---|
reason |
可选。客户上报的原因,例如“payment-declined”“pos-error”“integration-error”等。 |
CallerHangupEvent
此类型没有字段。
表示客户提前挂断了电话(例如,对 AI 感到反感)。
PosErrorEvent
销售终端 (POS) 专属故障。
| JSON 表示法 |
|---|
{ "errorMessages": [ string ], "affectedItemUids": [ string ], "affectedExternalIds": [ string ], "metadata": { string: string, ... } } |
| 字段 | |
|---|---|
errorMessages[] |
可选。人类可读的错误说明列表。如果同时发生多个问题(例如,多件商品缺货),或者为了更详细地说明单个复杂故障,可以提供多条出错提示。代理可以使用这些消息来通知客户或用于日志记录。 |
affectedItemUids[] |
可选。由订餐 AI 智能体生成的导致错误的唯一商品 UID。对应于 |
affectedExternalIds[] |
可选。导致错误的外部 ID(来自菜单)列表。应与 POS 中的实际代表一致,这些代表通常位于 menu.proto 中的集成属性下(例如,在 |
metadata |
可选。用于调试或品牌特定信号的自由格式元数据。可用于传递品牌特定的错误代码或类别(例如,{"BRAND_ERROR_CODE": "OUT_OF_STOCK"})。 包含一系列 |
ClientExecutionResult
客户端执行请求的结果。
| JSON 表示法 |
|---|
{ "executionId": string, // Union field |
| 字段 | |
|---|---|
executionId |
必需。此结果对应的执行请求的 ID。 |
联合字段 response。执行的具体结果。response 只能是下列其中一项: |
|
finalizeOrderResponse |
订单最终确定的结果。 |
orderPricesResponse |
获取订单价格的结果。 |
validateDeliveryAddressResponse |
配送地址验证结果。 |
orderStatusResponse |
获取订单状态的结果。 |
FinalizeOrderResponse
订单最终确定的结果。
| JSON 表示法 |
|---|
{ "paymentFlowEnabled": boolean, "paymentInfo": { object ( |
| 字段 | |
|---|---|
paymentFlowEnabled |
可选。是否在代理中启用付款处理流程。 |
paymentInfo |
可选。客户的付款信息。如果 paymentFlowEnabled 为 false,则不执行任何操作。 |
totalAmountDue |
可选。订单的应付总金额。 |
orderPriceInfo |
可选。订单的详细价格信息。 |
PaymentInfo
用户的付款信息。
| JSON 表示法 |
|---|
{
"creditCardLastFourDigits": string,
"creditCardCvv": string,
"paymentMethod": enum ( |
| 字段 | |
|---|---|
creditCardLastFourDigits |
可选。信用卡的后四位数字。此属性用于在付款阶段验证信用卡号。 |
creditCardCvv |
可选。信用卡的 CVV。 |
paymentMethod |
可选。所用支付方式的类型。 |
PaymentMethod
支付方式的类型。
| 枚举 | |
|---|---|
PAYMENT_METHOD_UNSPECIFIED |
未指定支付方式。 |
PAYMENT_METHOD_CREDIT_CARD |
信用卡。 |
PAYMENT_METHOD_CASH |
现金。 |
OrderPricesResponse
获取订单价格的结果。
| JSON 表示法 |
|---|
{
"success": boolean,
"orderPriceInfo": {
object ( |
| 字段 | |
|---|---|
success |
必需。是否成功检索到订单价格。 |
orderPriceInfo |
可选。扣除所有折扣、费用、税费等之后的订单总价 |
ValidateDeliveryAddressResponse
配送地址验证结果。
| JSON 表示法 |
|---|
{
"success": boolean,
"validationStatus": enum ( |
| 字段 | |
|---|---|
success |
必需。验证是否已完成且未发生错误。 |
validationStatus |
必需。配送地址的验证状态。 |
OrderStatusResponse
获取订单状态的结果。
| JSON 表示法 |
|---|
{ "success": boolean } |
| 字段 | |
|---|---|
success |
必需。是否成功检索到订单状态。 |
Blob
表示对话中的 blob 输入或输出。
| JSON 表示法 |
|---|
{ "mimeType": string, "data": string } |
| 字段 | |
|---|---|
mimeType |
必需。来源数据的 IANA 标准 MIME 类型。 |
data |
必需。Blob 的原始字节。 使用 base64 编码的字符串。 |
配置
会话和订餐属性的配置。在每次连接开始时,客户端必须先发送一条配置消息。此操作必须在任何其他发起会话的请求之前完成。如果客户端断开连接,则应在重新连接时重复发送相同的配置消息。
| JSON 表示法 |
|---|
{ "session": string, "store": string, "laneId": string, "enableEchoCancellation": boolean, "daypartId": string, "featureGate": { object ( |
| 字段 | |
|---|---|
session |
必需。订单的会话。格式: |
store |
必需。下单的商店。格式: |
laneId |
可选。特定免下车通道的 ID。 |
enableEchoCancellation |
可选。是否为会话启用回声消除功能。如果启用,客户端应在 AudioInput 中提供 customerAudio 和 crewAudio。 |
daypartId |
可选。餐单的时段,包括早餐、午餐、晚餐等。这用于确定要用于订单的菜单。 |
featureGate |
可选。会话的特性门控。此参数用于为会话启用或停用功能。 |
clientAppInfo |
可选。有关客户端应用和设备环境的信息。 |
mode |
可选。会话的模式。 |
channelType |
可选。用于代理通信的渠道类型。 |
enableListenOnlyDualChannel |
可选。是否为会话启用仅限收听的双声道。如果启用,客户端应在 AudioInput 中提供 customerAudio 和 crewAudio,CES 将在媒体处理服务器上执行 EAC 和求和。 |
testSessionStartTime |
可选。会话的开始时间,用于测试或评估。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
FeatureGate
会话的特性门控。此参数用于为会话启用或停用功能。
| JSON 表示法 |
|---|
{ "menuResponseEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean } |
| 字段 | |
|---|---|
menuResponseEnabled |
可选。如果设置了此字段,则在 BidiProcessOrderResponse 中向客户端返回菜单数据。 |
updatedOrderStateEnabled |
可选。如果设置了此字段,系统会返回 updatedOrderState,而不是 legacyOrderStateResponse。 |
enableOrderStatusRetrieval |
可选。如果设置,代理将支持订单状态检索。 |
ClientAppInfo
与客户端应用和设备环境相关的信息。这主要用于日志记录、分析和调试。
| JSON 表示法 |
|---|
{ "deviceModel": string, "osVersion": string, "sdkVersion": string } |
| 字段 | |
|---|---|
deviceModel |
可选。客户端的设备型号(例如“iPhone 13”“Pixel 7”“Kiosk v2”)。 |
osVersion |
可选。客户端的操作系统版本(例如“iOS 16.1”“Android 13”)。 |
sdkVersion |
可选。客户端 SDK 或应用程序的版本。 |
SessionMode
会话的模式。
| 枚举 | |
|---|---|
SESSION_MODE_UNSPECIFIED |
未指定会话模式。 |
HYBRID |
该会话同时支持音频和文字。这是默认设置。 |
TEXT |
此会话仅支持文本。 |
TurnType
表示会话中一元请求的生命周期位置。
| 枚举 | |
|---|---|
TURN_TYPE_UNSPECIFIED |
未指定转弯类型。 |
INITIALIZE |
明确指明此请求会以一元模式初始化会话。设置后,初次会话变量(例如商店元数据和菜单)会注入 CES。 |
SUBSEQUENT |
明确表示后续对话轮次或会话中更新。设置后,系统会省略初次会话变量,以防止输入词元激增。 |
BidiProcessOrderResponse
从 FoodOrderingService.BidiProcessOrder 方法返回的顶级消息。
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 response。智能体的回答。response 只能是下列其中一项: |
|
agentAudio |
智能体的音频回答。 |
speechRecognition |
智能体的语音识别结果。 |
legacyOrderStateResponse |
会话的旧版订单状态响应。 |
interruptionSignal |
检测到音频输入中的中断信号。 |
agentEvent |
来自代理的事件。 |
clientExecutionRequest |
请求会转发给客户端执行。此字段用于客户端执行,例如向订单添加代码。 |
updatedOrderState |
表示订单状态更新。包含订单的完整状态。 |
agentText |
智能体提供的文字回答。 |
suggestedOptions |
可向客户建议的选项。 |
sentimentMeasurement |
针对此轮对话测得的实时情感得分。 |
turnCompleted |
转向完成消息。 |
endSession |
表示会话即将结束,这将是最后一轮对话。 代理将完成发送当前回合的所有待处理响应,然后发送最终的 turnCompleted 消息。代理不会开始任何新一轮对话。例如,一个 2 轮对话如下所示:
|
AgentAudio
智能体的音频回答。
| JSON 表示法 |
|---|
{ "agentAudio": string } |
| 字段 | |
|---|---|
agentAudio |
来自代理的音频数据。 使用 base64 编码的字符串。 |
SpeechRecognition
智能体的语音识别结果。
| JSON 表示法 |
|---|
{ "transcript": string, "languageCode": string, "isFinal": boolean } |
| 字段 | |
|---|---|
transcript |
以检测到的语言转写音频输入中的文本。 |
languageCode |
转写内容的语言代码。语言代码应采用 BCP-47 格式,例如“en-US”。 |
isFinal |
指示这是否为该轮对话的最终转写内容。 |
InterruptionSignal
此类型没有字段。
表示代理的音频回答已被中断(例如,被最终用户打断)。客户端应立即停止播放。
AgentEvent
来自智能体的特别活动,需要客户端采取行动。
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 event。来自代理的事件。event 只能是下列其中一项: |
|
restartOrder |
客户请求重新启动订单。 |
RestartOrder
客户要求重新下单。
| JSON 表示法 |
|---|
{ "confirmationStep": boolean } |
| 字段 | |
|---|---|
confirmationStep |
客服人员正在请求客户确认重启请求。 |
ClientExecutionRequest
向客户端发出的执行命令的请求。
| JSON 表示法 |
|---|
{ "executionId": string, // Union field |
| 字段 | |
|---|---|
executionId |
必需。此执行请求的唯一 ID。 |
联合字段 request。要执行的具体请求。request 只能是下列其中一项: |
|
finalizeOrderRequest |
完成订单的请求。 |
submitOrderRequest |
提交订单的请求。 |
orderPricesRequest |
获取订单价格的请求。 |
validateDeliveryAddressRequest |
验证配送地址的请求。 |
orderStatusRequest |
获取订单状态的请求。 |
FinalizeOrderRequest
此类型没有字段。
完成订单的请求。当客户表示已完成订购并希望付款时,代理通常会发送此消息。
SubmitOrderRequest
提交订单的请求,其中包含从客户那里收集的所有必要付款信息。
| JSON 表示法 |
|---|
{ "paymentInfo": { object ( |
| 字段 | |
|---|---|
paymentInfo |
必需。订单的付款信息。 |
loyaltyInfo |
可选。订单消耗的会员积分。 |
tipAmount |
可选。订单的小费金额。 |
LoyaltyInfo
表示客户的会员卡信息。
| JSON 表示法 |
|---|
{
"loyaltyAmount": {
object ( |
| 字段 | |
|---|---|
loyaltyAmount |
必需。会员积分。这可以是会员积分余额或已使用的会员积分。 |
LoyaltyAmount
表示客户的会员积分。
| JSON 表示法 |
|---|
{ "units": string } |
| 字段 | |
|---|---|
units |
必需。积分。 |
OrderPricesRequest
获取订单价格的请求。
| JSON 表示法 |
|---|
{
"order": {
object ( |
| 字段 | |
|---|---|
order |
可选。要获取价格的订单。如果未指定,我们可以假设请求针对的是会话中的现有订单/购物车。 |
ValidateDeliveryAddressRequest
请求验证在会话期间收集的配送地址。
| JSON 表示法 |
|---|
{
"deliveryAddress": {
object ( |
| 字段 | |
|---|---|
deliveryAddress |
必需。要验证的配送地址。 |
OrderStatusRequest
此类型没有字段。
获取订单状态的请求。
UpdatedOrderState
代理返回的事件,表示订单状态的更新。
| JSON 表示法 |
|---|
{
"order": {
object ( |
| 字段 | |
|---|---|
order |
与此会话关联的订单的更新状态。 |
changed |
仅限输出。订单状态是否有更新。 |
AgentText
智能体提供的文字回答。
| JSON 表示法 |
|---|
{ "text": string } |
| 字段 | |
|---|---|
text |
智能体提供的文字回答。 |
SuggestedOptions
可向客户建议的选项。
| JSON 表示法 |
|---|
{ "suggestedModifierGroups": { object ( |
| 字段 | |
|---|---|
suggestedModifierGroups |
一组建议的修饰符。 |
联合字段 suggested_options。建议的选项。suggested_options 只能是下列其中一项: |
|
suggestedItems |
向客户推荐的商品列表。 |
suggestedModifiers |
建议客户使用的修饰符列表。 |
SuggestedItems
向客户推荐的商品列表。
| JSON 表示法 |
|---|
{
"items": [
{
object ( |
| 字段 | |
|---|---|
items[] |
要向客户推荐的商品。 |
SuggestedItem
要向客户推荐的商品。
| JSON 表示法 |
|---|
{ "itemId": string, "displayName": string, "image": { object ( |
| 字段 | |
|---|---|
itemId |
菜单中商品的 ID。 |
displayName |
要在界面上显示的此项的人类可读名称。 |
image |
在界面中为此项显示的图片。 |
basePrice |
商品的基本价格。这可能会受到所选修饰选项的影响。这是商品的单价。 |
integrationAttributes |
与此实体关联的元数据,用于下游集成。 |
SuggestedModifiers
建议客户使用的修饰符列表。
| JSON 表示法 |
|---|
{
"modifiers": [
{
object ( |
| 字段 | |
|---|---|
modifiers[] |
要向客户建议的修饰符。 |
parentUid |
要应用修饰符的父级商品/修饰符的唯一标识符。 |
SuggestedModifier
向客户建议的修饰符。
| JSON 表示法 |
|---|
{ "modifierId": string, "modifierGroupId": string, "modifierGroupDisplayName": string, "displayName": string, "image": { object ( |
| 字段 | |
|---|---|
modifierId |
菜单中修饰符的 ID。 |
modifierGroupId |
如果接受建议,应将此修饰符添加到的修饰符组的 ID。 |
modifierGroupDisplayName |
此修饰符所属修饰符组的显示名称。 |
displayName |
要在界面上显示的此项的人类可读名称。 |
image |
在界面中为此项显示的图片。 |
priceAdjustment |
与此修饰符关联的价格调整(如有)。这是修饰符的单价。 |
integrationAttributes |
与此实体关联的元数据,用于下游集成。 |
alreadyIncluded |
此修饰符是否已包含在订单中。 |
SuggestedModifierGroups
要向客户推荐的修饰符组列表。
| JSON 表示法 |
|---|
{
"modifierGroups": [
{
object ( |
| 字段 | |
|---|---|
modifierGroups[] |
要向客户推荐的修饰符组。 |
SuggestedModGroup
向客户推荐的修饰符组。
| JSON 表示法 |
|---|
{
"modifierGroupId": string,
"displayName": string,
"modifiers": [
{
object ( |
| 字段 | |
|---|---|
modifierGroupId |
菜单中修饰符组的 ID。 |
displayName |
修饰符组的显示名称。 |
modifiers[] |
此组中的修饰符。 |
maxSelectionCount |
可从此组中选择的修饰符数量上限。 |
minSelectionCount |
必须从此组中选择的修饰符数量下限。 |
maxSelectionCountPerModifier |
限制每个修饰符在此组中可应用的次数。 |
SentimentMeasurement
针对此轮对话测得的实时情感得分。
| JSON 表示法 |
|---|
{ "score": number, "magnitude": number } |
| 字段 | |
|---|---|
score |
可选。情感得分介于 -1.0(消极情感)和 1.0(积极情感)之间。 |
magnitude |
可选。情感强度,不考虑得分。 |
TurnCompleted
此类型没有字段。
表示 Food AI 智能体已检测到当前对话轮次结束,并且不会再为此轮次提供任何输出。
EndSession
表示代理已终止会话,原因可能是会话已成功完成(例如,用户说“再见!”)或客服人员上报。
| JSON 表示法 |
|---|
{ "type": enum ( |
| 字段 | |
|---|---|
type |
结束会话事件的类型。 |
reason |
结束会话的原因。 |
posResponse |
可选。POS 系统在订单签入后返回的响应(可选)。这是一个不透明的字符串载荷,表示 POS 交易状态。 |
agentResponse |
可选。要向用户朗读/显示的最终智能体回答消息(可选)。 |
storeSchedule |
可选。商店营业时间。仅当结束类型为 STORE_CLOSED 时,才会设置此字段。 |
EndType
结束会话事件的类型。
| 枚举 | |
|---|---|
END_TYPE_UNSPECIFIED |
未指定结束类型。 |
DRIVE_OFF |
客户开车离开了。 |
AGENT_ESCALATION |
智能体将对话上报给人工客服。 |
CREW_INTERJECTION |
一名工作人员在会议中插话。 |
ORDER_COMPLETED |
订单已成功完成,无需采取进一步行动。 |
PAYMENT_FLOW_SUCCESS |
付款流程已成功完成,您无需采取进一步行动。 |
PAYMENT_FLOW_FAILURE |
付款流程失败。 |
CLIENT_ESCALATION |
客户将该会话上报给了人工客服。 |
CALLER_HANGUP |
客户提前挂断了电话。 |
REQUESTED_CHECKOUT |
客户要求结账。 |
REQUESTED_ORDER_STATUS |
客户询问了其订单状态。 |
STORE_CLOSED |
商店已停业。 |