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

# Webhooks

> 使用Svix向您的用户发送Webhooks

ShipThing支持使用[Svix](https://www.svix.com/)向您的用户发送Webhooks。Svix是一个企业级的Webhooks发送服务。

<Note>
  当存在`SVIX_TOKEN`环境变量时，Webhooks功能会自动启用。
</Note>

## 工作原理

ShipThing以无状态方式使用Svix API。认证用户的组织ID会被用作Svix应用UID，该UID会在发送第一条消息时自动创建。

## 使用方法

### 发送Webhook

要发送Webhook，只需使用`@repo/webhooks`包中的`send`函数：

```tsx theme={"system"}
import { webhooks } from '@repo/webhooks';

await webhooks.send('invoice.created', {
  data: {
    id: 'inv_1234567890',
  },
});
```

### 添加Webhook端点

Svix提供了一个预构建的[消费者应用门户](https://docs.svix.com/app-portal)，用户可以在其中添加端点并管理所有与Webhook订阅相关的内容。应用门户访问基于使用特殊魔法链接的短期会话，并且可以[嵌入到您仪表板的iframe中](https://docs.svix.com/app-portal#embedding-in-a-react-application)。

要访问应用门户，请使用`@repo/webhooks`中的`getAppPortal`函数，并在仪表板中使用返回的URL创建一个`iframe`。

```tsx theme={"system"}
import { webhooks } from '@repo/webhooks';

const { url } = await webhooks.getAppPortal();

return (
  <iframe src={url} style="width: 100%; height: 100%; border: none;" allow="clipboard-write" loading="lazy" />
);
```

我们有一个预构建的页面`/zh/webhooks`可以作为起点。
