@confirmo/overlay

中文文档
4.6.0发布于 2026/09/01TypeScriptESM + CJS近 30 天下载 2.1万

确认覆盖库

中文使用文档
文档目录12 节
  1. 无
  2. 线条
  3. 小时
  4. 光盘N
  5. 重叠
  6. 炸弹
  7. 脚本标记
  8. 支付按钮
  9. HTML 语言
  10. 炸弹
  11. 脚本标记
  12. 重叠活动

确认

无

npm install @confirmo/overlay

线条

yarn add @confirmo/overlay

小时

pnpm add @confirmo/overlay

光盘N

<!-- To always install exact version (recommended - avoid future breaking changes) -->
<script src="https://cdn.jsdelivr.net/npm/@confirmo/[email protected]/dist/confirmo.js"></script>
<!-- To always install exact major version -->
<script src="https://cdn.jsdelivr.net/npm/@confirmo/overlay@4/dist/confirmo.js"></script>
<!-- To always install the latest version -->
<script src="https://cdn.jsdelivr.net/npm/@confirmo/overlay@latest/dist/confirmo.js"></script>

重叠

炸弹

import { Invoice } from '@confirmo/overlay';

/**
 * Opens Confirmo invoice overlay
 *
 * @param {string} invoice_url - URL of invoice.
 * @param {callback} [callback_fnc] - Optional - callback which is called when overlay was closed
 * @param {InvoiceOverlayConfig} [overlayConfig] - Optional - Confirmo overlay configuration (currently only for auto-close when invoice is paid)
 *
 * @example
 *
 * // URL of invoice created from REST API
 * const invoice_url = 'https://pay.confirmo.com/public/invoice/invv9e1rxdz8?m=mer951dkwdw1';
 *
 * // (optional) Callback which is called when overlay was closed
 * const callback_fnc = () => alert('Overlay has been closed');
 *
 * // (optional) Confirmo overlay configuration
 * const overlayConfig = {
 *   closeAfterPaid: true,
 *   closeAfterPaidTimeoutMs: 2000, // when unspecified, default is 2000ms
 * }
 *
 */
const overlay = Invoice.open(invoice_url, callback_fnc, overlayConfig);

/**
 * Closes Confirmo invoice overlay
 */
overlay.close();

脚本标记

<script>
  const overlay = Confirmo.Invoice.open(invoice_url, callback_fnc, overlayConfig);

  overlay.close();
</script>

支付按钮

HTML 语言

<div id="placeholder-for-button"></div>

炸弹

import { PaymentButton } from '@confirmo/overlay';

/**
 * Creates Confirmo payment button
 */
const button = PaymentButton.initialize(
  {
    id: 'placeholder-for-button',
    paymentButtonId: 'pbt16354asde',
    buttonType: 'SIMPLE',
    values: {
      productName: 'Some cool product',
      productDescription: 'Simple description',
      reference: 'merchantRef',
      returnUrl: 'https://my-cool-eshop.com/?q=this+is+return+url',
      merchantId: 'mer951dkwdw1',
      overlay: true,
    },
  },
  /**
   * Overlay related properties (relevant only if values.overlay set to `true`)
   */
  // (optional) Callback function called on Invoice.close() (see overlay.d.ts)
  () => {
    console.log('Overlay has been closed!');
  },
  // (optional) Invoice overlay config
  overlayConfig,
);

/**
 * Removes Confirmo payment button
 */
button.remove();

脚本标记

<script>
  const button = Confirmo.PaymentButton.initialize(
    {
      id: 'placeholder-for-button',
      paymentButtonId: 'pbt16354asde',
      buttonType: 'SIMPLE',
      values: {
        productName: 'Some cool product',
        productDescription: 'Simple description',
        reference: 'merchantRef',
        returnUrl: 'https://my-cool-eshop.com/?q=this+is+return+url',
        merchantId: 'mer951dkwdw1',
      },
    },
    /**
     * Overlay related properties (relevant only if values.overlay set to `true`)
     */
    // (optional) Callback function called on Invoice.close() (see overlay.d.ts)
    () => {
      console.log('Overlay has been closed!');
    },
    // (optional) Invoice overlay config
    overlayConfig,
  );

  button.remove();
</script>

重叠活动

通过窗口从公共发票视图中发射的事件# PostMessage API https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage 互联网档案馆的存檔,存档日期2013-12-02

使用 @ confirmo/ overlay 的组件可以相应收听 InvoiceOverlayMessageEventData :

import { ConfirmoOverlayInvoiceStatus, ConfirmoOverlayMessageAction, Invoice } from '@confirmo/overlay';

const overlay = Invoice.open(invoiceUrl, callback_fnc);

// Custom implementation of closing Confirmo overlay after invoice being paid
window.addEventListener('message', (event) => {
  if (
    invoiceUrl.includes(event.origin) &&
    event.data.action === ConfirmoOverlayMessageAction.CONFIRMO_OVERLAY_INVOICE_STATUS_CHANGE &&
    event.data.status === ConfirmoOverlayInvoiceStatus.PAID
  ) {
    // handle paid invoice (e.g. by closing the overlay)
    setTimeout(() => {
      overlay.close();
    }, 2000); // close overlay after 2 seconds
  }
});

注:上述效果可以简单地通过设置来实现 overlayConfig是因为 closeAfterPaid

import { Invoice } from '@confirmo/overlay';

const overlayConfig = {
  closeAfterPaid: true,
};

Invoice.open(invoiceUrl, callback_fnc, overlayConfig);

版本与发布记录

@confirmo/overlay 共发布 28 个版本,首次发布于 2019/05/14;过去 12 个月发布了 4 个版本。

版本发布日期距今
4.6.0latest2026/09/012 个月前
4.5.22026/06/234 个月前
4.5.12026/06/224 个月前
4.5.02026/06/224 个月前
4.4.12025/07/281.3 年前
4.4.02025/07/281.3 年前

其他发布通道:beta → 2.0.0。

关于 @confirmo/overlay 的常见问题

@confirmo/overlay 是什么?

确认覆盖库

如何安装 @confirmo/overlay?

在项目目录运行 npm install @confirmo/overlay,或使用 pnpm add / yarn add / bun add。

@confirmo/overlay 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@confirmo/overlay 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@confirmo/overlay 可以商用吗?

@confirmo/overlay 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@confirmo/overlay 的下载量有多少?

根据 npm 官方下载统计,@confirmo/overlay 在 2026/10/11 – 2026/11/09 这 30 天内被下载 21,186 次,日均约 706 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@confirmo/overlay 还在维护吗?

最新版本 4.6.0 发布于 2026/09/01(2 个月前);至今共发布 28 个版本,其中过去 12 个月发布了 4 个;首次发布于 2019/05/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。