用途:在 React + Vite 前端与 Supabase Edge Functions(Deno)后端中集成 MercadoPago 定期订阅,基于 preapproval 计划实现完整订阅生命周期管理。
主要能力:前端仅用 Secure Fields 对卡片做令牌化,所有 MercadoPago API 调用在服务端 Edge Functions 中执行。支持创建(POST /preapproval,status=authorized)、取消、改套餐、换卡、暂停、恢复等操作,并包含状态查询、Webhook 通知处理与 CRON 定时检查。
使用方式:前端通过 CardForm 生成卡令牌后调用 Edge Function,例如 api.mpCreateSubscription({ planKey, companyId, cardTokenId, payerEmail });管理操作统一走 mp-manage-subscription,通过 action 区分 cancel、change_plan、change_card、pause、reactivate。套餐定义在 supabase/functions/_shared/mp-plans.ts,各套餐对应环境变量中的 preapproval 计划 ID。
环境变量:前端 .env 使用 VITE_MP_PUBLIC_KEY;Edge Functions 使用 MP_MODE、MP_ACCESS_TOKEN、MP_WEBHOOK_SECRET、MP_PLAN_ID_BASIC、MP_PLAN_ID_STANDARD、MP_PLAN_ID_PREMIUM、RESEND_API_KEY。
限制与规则:不得存储原始卡数据;创建订阅须用 status: 'authorized';MP API 调用须带 X-Idempotency-Key;Webhook 须在 22 秒内返回 200 并做 HMAC-SHA256 签名校验;取消后保留访问至 current_period_end;跨用户数据库更新使用 service role 客户端。详细前端、Edge Function、Webhook、类型与邮件模板参考见对应文档,资料未提供具体内容。