开发者

元素嵌入

使用类型化原语将签名 UI 组合到您的 React 产品中 - 您在自己的页面 shell 中呈现的提供者 + 状态 + 签名者 + 签名捕获组件。

四步整合元素

  1. 1

    安装包

    将 @endorsed/elements 添加到您的 React 18+ 项目中。对等部门仅是 React 和 React DOM——没有供应商SDK蔓延。

  2. 2

    在服务器端创建签名会话令牌

    从您的后端,使用信封 ID + 签名者电子邮件 POST /api/signing-sessions。响应包含一个仅限于该签名者的短期签名会话令牌。

  3. 3

    将您的签名路由包裹在 <EndorsedProvider> 中

    提供商将您的API配置携带到基元中 - 无需进行道具钻探。使用 useSigningSession() 兑换会话令牌并在您自己的布局中渲染 <EnvelopeStatus>、<SignerInfo> 和 <SignatureField>。

  4. 4

    处理签名提交+状态回调

    useSignatureSubmit() 将捕获的签名发布到 /api/signing-sessions/:id/signature。侦听状态转换,并在 SigningSessionStatus 翻转时将签名者路由到您自己的成功/拒绝页面。

最小嵌入示例

使用附带原语的可组合签名表面。先决条件:React 18+ 和服务器端铸造的签名会话令牌。预期输出:签名者可以看到他们的信封状态、身份和签名板——所有这些都在您的产品 Chrome 中。

tsx
import {
  EndorsedProvider,
  EnvelopeStatus,
  SignerInfo,
  SignatureField,
  useSigningSession,
} from '@endorsed/elements';

// 1. Wrap once at the app root (or per-signing-route).
export function App({ children }: { children: React.ReactNode }) {
  return (
    <EndorsedProvider
      baseUrl={process.env.NEXT_PUBLIC_ENDORSED_BASE_URL}
      // No API key in the browser. The provider only holds config.
    >
      {children}
    </EndorsedProvider>
  );
}

// 2. Render the signing surface. Compose these primitives into your
//    own page shell — headers, footers, and layout stay yours.
export function SigningPage({ sessionToken }: { sessionToken: string }) {
  const { status, envelope, signer } = useSigningSession(sessionToken);

  if (status === 'loading') return <p>Loading signing session…</p>;
  if (status === 'expired' || status === 'revoked') return <p>This link has expired.</p>;

  return (
    <section>
      <EnvelopeStatus value={envelope.status} />
      <SignerInfo values={{ name: signer.name, email: signer.email }} />
      <SignatureField
        onSubmitted={(result) => {
          // Advance your product state — redirect, mark task done, etc.
          console.log('Signature captured', result.signatureId);
        }}
      />
    </section>
  );
}

Elements 提供可组合原语(提供者、状态/签名者显示、签名捕获)。编写上述原语或通过签名会话 URL 嵌入托管签名者。

什么嵌入手柄适合您

📄

文档渲染

PDF 渲染、缩放、滚动和页面导航 - 跨浏览器,包括移动 Safari。

✍️

签名捕捉

绘制、输入或上传签名。跨设备的一致捕获体验,没有浏览器怪癖。

🔐

身份验证

OTP 检查在嵌入内部处理。您的产品中不需要单独的身份验证 UI。

📋

字段导航

在允许提交之前,通过必填字段强制执行引导式逐字段导航。

常见问题

元素嵌入到您的产品中

签名表面与您的品牌一起呈现在您的域中。您的产品框架、标题、导航 - EndorsedSign 处理文档和字段交互。

客户门户中的签名者文档列表,其中包含已填充的状态和操作
元素嵌入在虚构的 SaaS 产品中渲染。签名表面位于产品镀铬内部 - 没有重定向,没有 iframe,没有可见的 EndorsedSign 品牌。

在您自己的沙盒租户中尝试 Elements

通过快速入门声明一个沙箱,从后端创建一个签名会话令牌,并将上面的原语放入任何 React 18+ 应用程序中。