news 2026/8/28 9:00:40

ExtPay 浏览器扩展支付快速接入指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ExtPay 浏览器扩展支付快速接入指南

ExtPay 浏览器扩展支付快速接入指南

【免费下载链接】ExtPayThe JavaScript library for ExtensionPay.com — payments for your browser extensions, no server needed.项目地址: https://gitcode.com/gh_mirrors/ex/ExtPay

ExtPay 是一个面向浏览器扩展的 JavaScript 支付库。它基于 Stripe,内置订阅管理、优惠券、免费试用三项能力,不用写一行后端代码就能向用户收费,适合想给自己的扩展做变现的 JS 开发者。

💰 浏览器扩展变现的三座大山

不少扩展作者想做收费功能,却卡在最前面一步:扩展只跑在用户机器上,没有服务器接收支付回调。第一座山是校验——Stripe 的支付链接和 webhook 验证都要后端配合,没有后端你没法确认用户真的付了款。

第二座山是订阅生命周期:自动续费、扣款失败后的重试、催款邮件,都需要一套计费系统。直接调 Stripe API,意味着每个状态都得自己维护。

第三座山是用户状态:谁付过款、谁的试用到期、谁的卡刚刚失效,这些状态要有地方存,还要跨浏览器同步。

ExtPay 的做法是把这三件事搬到云端。扩展端只调几个方法:getUser 拿支付状态、openPaymentPage 打开支付页、getPlans 拿套餐列表,省掉的是整个自建计费后端的工程量。

🚀 拿到项目后的前 10 分钟

先克隆仓库:

git clone https://gitcode.com/gh_mirrors/ex/ExtPay

仓库里有两个示例扩展,sample-extension-mv3/ 和 sample-extension-mv2/。新项目选 MV3;你的扩展还停在 MV2 就直接用 MV2 那份,两者的接入方式几乎一致。

接着做三件事:先在 ExtensionPay 注册你的扩展,拿到一个扩展 ID;再把 background.js、popup.js、content.js 三个文件里的占位符 sample-extension 换成你自己的 ID;最后打开浏览器扩展开发者页面,开启开发者模式,用"加载已解压的扩展"选中示例目录。

manifest.json 里注意两处:加 "storage" 权限;Firefox 还要给 extensionpay.com 域加 host 权限,自定义了 CSP 的话补一条 connect-src。

🧭 用户从点"订阅"到付款成功的全链路

用户视角一共四步,开发者一页都不用搭。

第一步,扩展调用 openPaymentPage 打开新标签页的选套餐页面。套餐数据来自 getPlans,字段包含价格(美分)、币种和计费周期(月、年、一次性)。

第二步,用户点套餐后跳转 Stripe 结账页填卡,成功后生成一条 Stripe 订阅记录。

第三步,结账页下方有 Add promotion code 入口,用户输入折扣码,页面自动算出折后价。

第四步,付款成功后用户看到订阅管理页,可以换卡或取消订阅。扩展端用 getUser() 里的 user.paid 判断是否放开付费功能,也可以注册 onPaid 回调,在付款瞬间执行自己的逻辑。

MV3 有个坑:service worker 的回调里全局 extpay 实例会变成 undefined,要在回调里重新用 ExtPay('你的ID') 实例化,startBackground 只调一次。

🎫 让免费用户付费的三件套

免费试用。它省掉自建邮件确认和试用状态存储的活。浏览器扩展免费试用的流程是:openTrialPage 打开试用页,用户填邮箱,收到确认链接,点链接后试用才正式开始。平台只记录 trialStartedAt,时长由扩展自己判断——7 天试用就对比 trialStartedAt 与当前时间的差值。传 '7-day' 这样的参数,用户提交前就能看清试用周期。

优惠券。扩展优惠券在 Stripe 后台创建,支持固定金额和百分比两种类型,扩展端不用写折扣计算代码,结账时由 Stripe 自动算好折后价。关键是创建时勾上 Use customer-facing coupon codes,才会生成可发给用户的短码,详见 docs/discount_code_guide.md。

促销策略。定价结构本身就是策略:月费 $10 加年费 $99 的组合,让年付显得更划算,引导用户选年付。折扣码走邮件等渠道发放,再配一条试用到期提醒,就能拼出"试用 → 折扣码 → 首单"的转化路径。

⚙️ Stripe 后台与失败支付必配项

连上 Stripe 账号后,对照检查这几项:

  • 支付方式:设置里能开的尽量都开,别漏掉用户本来能完成的支付。
  • 3D Secure:保持开启,不要为了通过率关掉。
  • 失败支付重试:Stripe 默认会再尝试扣款几次后才把订阅标记为取消,重试策略可按业务调整。
  • 邮件通知:打开 Send emails when card payments fail,卡失效时由 Stripe 发邮件提醒用户换卡。
  • 状态映射:扣款失败后订阅进入 past_due,paid 变为 false,扩展要识别这个状态并提示用户更新卡,细节见 docs/how_subscriptions_work.md。

✅ 上线前的自测路线

开发模式下,订阅管理页会换成开发者控制台,可以模拟各种订阅状态、重置试用。测试支付需要输入你的账号密码,用 Stripe 测试卡就能把整条流程走通。

自检项:

  1. 用测试卡支付一次,确认 user.paid 变 true,onPaid 回调触发。
  2. 用邮箱发起试用,确认 trialStartedAt 有值,到期时间与预期一致。
  3. 模拟一次扣款失败,确认扩展弹出更新卡片的提示。
  4. 取消订阅,确认周期内 paid 仍为 true 且 subscriptionCancelAt 有值,周期结束后变 false。
  5. 换一个浏览器,通过登录页用邮箱找回付费状态。

从个人小项目到商业扩展

ExtPay 是一个基于 Stripe、不需要自建服务器的浏览器扩展支付库。个人小项目拿它收月费,商业扩展跑在它上面,接入方式不随规模变化。

下一步:把你的扩展 ID 填进 MV3 示例加载运行,用测试卡跑一遍"试用 → 订阅 → 取消"的完整循环,再把它换成你自己的功能。

【免费下载链接】ExtPayThe JavaScript library for ExtensionPay.com — payments for your browser extensions, no server needed.项目地址: https://gitcode.com/gh_mirrors/ex/ExtPay

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 8:59:53

3 个实战场景速通 Claude Code:终端自然语言编码指南

3 个实战场景速通 Claude Code:终端自然语言编码指南 【免费下载链接】claude-code Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex …

作者头像 李华
网站建设 2026/8/28 8:59:35

STM32G4嵌入式系统实战:事件驱动架构与状态机设计解析

1. 从赛题到实战:为什么第十届国赛值得反复拆解 最近在带学生备赛蓝桥杯嵌入式,翻看历年真题时,第十届国赛的题目总是被拿出来反复讨论。这届比赛,与其说是一道考题,不如说是一个微缩版的工业级嵌入式应用场景。它没有…

作者头像 李华
网站建设 2026/8/28 8:58:40

三维非线性拟合实战:从数学模型到Python实现

1. 项目概述:从二维到三维的非线性拟合跃迁 在数据分析和工程应用领域,曲线拟合是一项基础且核心的任务。当我们谈论“拟合”时,很多人的第一反应是二维平面上的散点图,用一条直线或多项式曲线去逼近它们。这确实是入门&#xff0…

作者头像 李华
网站建设 2026/8/28 8:58:01

Java面向对象游戏开发实战:从课设到简历的完整项目指南

简介:面向对象程序设计是计算机科学的核心基础,其核心思想是通过封装、继承和多态将现实世界实体抽象为可复用的代码模块。在游戏开发领域,这一思想得到了完美体现,游戏中的角色、物品、状态等均可映射为对象,通过对象…

作者头像 李华
网站建设 2026/8/28 8:57:40

临床文本关系抽取落地实践:分步式架构与CSVL校验

简介:医学实体关系抽取是医疗NLP的核心任务,其本质是将非结构化病历转化为可计算的临床语义网络。原理上需协同处理实体识别、关系分类与医学逻辑约束,技术价值在于支撑CDSS、自动摘要和用药风险预警等关键应用。然而真实场景中面临书写不规范…

作者头像 李华