> ## Documentation Index
> Fetch the complete documentation index at: https://docs.seminode.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 响应

> 响应对报价采取行动——接受或拒绝，以关闭报价会话。

**Kind：** `2024`

响应是对报价采取行动的事件。与报价一样，响应内容是端到端加密的（[NIP-44](https://github.com/nostr-protocol/nips/blob/master/44.md)）——只有会话中的双方可以读取。

## 会话关闭

一个报价会话可以通过两种方式关闭：**拒绝**（由任一方发起），或**双方接受**（双方都接受）。`"s"` 和 `"z"` 标签用于跟踪会话的状态：

* **`s`** —— 响应状态：`"accepted"` 或 `"rejected"`。
* **`z`** —— 会话最终化状态：`"pending"`（等待另一方）或 `"complete"`（会话已关闭）。

| 情景          | `s`        | `z`        |
| ----------- | ---------- | ---------- |
| 已拒绝         | `rejected` | `complete` |
| 第一方接受       | `accepted` | `pending`  |
| 第二方接受（最终关闭） | `accepted` | `complete` |

第二次接受只能针对另一方已经设置了 `["s", "accepted"]` 的已签名事件发布。一旦双方都已接受且会话被标记为 `"complete"`，则该交易视为已关闭。

**内容：**

以下是加密前的明文 JSON 内容。加密后的密文放入事件的 `content` 字段中。

```json theme={null}
{
  "company": "<string - Company name (set by app layer)>",
  "contact": "<string - Contact information>",
  "status": "<string - 'accepted' or 'rejected'>",
  "message": "<string - Quote message or note>",
  "meta": "<object - Arbitrary metadata JSON object (Optional)>",
  "quote": "<object - Embedded quote details (type: Quote)>",
  "reason": "<string - Reserved for future use>",
  "schema_version": "<string - listing schema version"
}
```

**响应标签**

```js theme={null}
[
  // Inherited Tags from replied-to quote
  ["n", "material_no"],
  ["m", "manufacturer name"],
  ["y", "supply or demand"],
  ["c", "poster_name"],
  ["b", "any"],
  ["i", "internal_no"],
  ["c", "any"],
  ["t", "any"],

  // Reply Event tags
  ["t", "thread_id"],
  ["r", "wss://domain.seminode.com/inbox"],        // My reply inbox node URL
  ["p", "recipient_pubkey"],                       // The recipient pubkey
  ["e", "root_listing_event_id", "", "root"],      // The listing event ID
  ["u", "user_pubkey1", "user_pubkey2"],           // Optional, the user pubkey

  // Response Only Tags
  ["s", "accepted", "rejected"],
  ["z", "complete", "pending"]
]
```

* 响应**应当**复制挂单的标签。
* 响应**必须**将接收方 `"p"` 标签设置为报价事件作者的公钥。
* 响应**必须**将状态 `"s"` 标签设置为 `accepted` 或 `rejected`。
* 响应**必须**将状态 `"z"` 标签设置为 `pending`（如果它是第一个接受者），或 `complete`（如果是拒绝，或是接受另一个已接受的响应）。
* 响应**必须**发布到挂单 `"r"` 标签指定的收件节点 URL，以及发送方自己的收件节点。
