PAYATHON 2026

如何更改 Heroku billing account?

支付阿杰

结论

不要通过删除信用卡来切换账单。应先确认应用已经完成转移,新 owner 的 Heroku 账户也已验证并绑定有效的付款方式,再核对费用对应的应用、账期和资源。

转移完成后,新产生的应用套餐和附加服务费用原则上由新的应用所有者承担。转移前已经产生但尚未结算的费用,仍可能出现在原账户中。如果转移完成后,原账户仍在产生新费用,请保留双方的账单记录,并联系 Heroku Billing Support 核查。

为什么转移后仍可能扣原信用卡

可能的原因有:

  • 应用转移邀请已经发出,但新 owner 尚未接受,因此所有权并未真正变更。
  • 扣款对应的是转移前已经产生的费用。Heroku 通常按账期结算,扣款日期不等于资源的实际使用日期。
  • 原账户下还有其他应用、数据库或 add-on 正在计费。
  • 应用属于 Heroku Team,费用由 Team 的 billing account 承担,而不是某位 collaborator 的个人账户。
  • 部分第三方服务可能在 Heroku 之外单独签约和收费,需要另行变更付款账户。
  • 新 owner 没有有效的付款方式,计费关系可能没有按预期完成,相关资源之后也可能受到限制。

“Hobby” 等套餐名称可能来自旧版 Heroku 计费体系。处理时应以 Dashboard 当前显示的套餐、账单主体和资源归属为准。

安全的处理步骤

1. 确认应用当前所有者

在 Heroku Dashboard 中打开应用,进入 Settings 或 Access,确认 owner 已显示为新账户,而不只是将新账户列为 collaborator。

也可以使用 Heroku CLI 查看应用信息:

heroku apps:info --app APP_NAME

如果转移尚未完成,可由当前 owner 发起转移:

heroku apps:transfer NEW_OWNER_EMAIL --app APP_NAME

新 owner 还需要接受转移。不同 CLI 版本的交互方式可能不同。如果命令不可用,请直接通过 Dashboard 操作。

2. 确认新 owner 已配置付款方式

让新 owner 登录自己的 Heroku Dashboard,并检查以下内容:

  • 账户是否已完成验证;
  • Billing 页面中是否有有效的付款方式;
  • 信用卡是否过期或被拒付;
  • 如果应用属于 Team,应检查 Team 的 Billing 页面,而不是个人账户的 Billing 页面。

成为 collaborator 或 owner,并不代表付款方式已经配置好。

3. 核对应用上的所有计费资源

使用以下命令列出 dyno、数据库和其他 add-on:

heroku ps --app APP_NAME
heroku addons --app APP_NAME
heroku pg:info --app APP_NAME

需要重点检查:

  • 付费 dyno 套餐;
  • Heroku Postgres 套餐;
  • Redis、日志、监控等 add-on;
  • 是否存在名称相似的旧应用;
  • 原账户下是否还有单独计费的资源。

同时查看双方 Billing 页面中的 invoice 或 usage 明细,对照费用所对应的应用名称、资源名称和使用日期。

4. 区分旧费用和转移后的新费用

如果扣款对应的是转移前的使用时间,通常属于原账户应支付的历史应计费用。应用后来完成转移,并不会自动把这部分费用改由新 owner 承担。

建议记录:

  • 应用转移完成的准确时间;
  • 原账户账单中的 usage period;
  • 被收费的应用和 add-on 名称;
  • 新 owner 开始承担费用的账期。

如果转移完成后的使用仍被计入原账户,这就不只是账单延迟,需要交由 Heroku 支持核查。

5. 必要时联系 Heroku Billing Support

提交 billing ticket 时,可以提供:

  • 应用名称;
  • 原 owner 和新 owner 的账户邮箱;
  • 转移完成时间;
  • invoice 编号;
  • 相关扣款的日期和金额;
  • Dashboard 中当前 owner 的截图。

不要在工单中提交完整信用卡号、CVV 或其他敏感支付信息。

删除信用卡会不会导致数据库丢失

删除原账户中的信用卡,通常不会直接删除已转移应用里的 PostgreSQL 数据。数据库资源由应用归属关系管理,数据并不存储在个人信用卡中。

不过,不应把删除信用卡当作切换账单的办法。如果应用并未真正完成转移,或者仍有付费资源属于原账户,那么账户变为 unverified、付款失败或出现欠费后,相关资源可能受到降级、暂停或删除策略的影响。具体如何处理,取决于当时的 Heroku 套餐和欠费政策,不能假定数据一定不会受影响。

更改付款信息前,至少先完成一次数据库备份:

heroku pg:backups:capture --app APP_NAME
heroku pg:backups --app APP_NAME

如果需要保留本地副本,可以下载最近的备份:

heroku pg:backups:download --app APP_NAME

确认备份成功、新 owner 已配置有效付款方式,并核实后续费用已进入正确账户后,再考虑是否从原账户中移除信用卡。

注意事项

  • collaborator 不会自动承担应用费用,费用由应用或 Team 的实际账单归属决定。
  • 应用转移不会把转移前已经产生的费用追溯到新 owner 名下。
  • 不要只根据银行扣款日期判断费用归属,应查看 invoice 中的实际使用周期。
  • 数据库备份不能代替付款方式迁移,但可以降低操作期间的数据风险。
  • 在确认原账户下没有其他付费应用、add-on、Team 费用或未结账款之前,不要删除付款方式。
  • 如果双方 Dashboard 显示的所有权与账单明细相互矛盾,只有 Billing Support 能确认后台的实际计费主体并处理错误收费。

备注:内容仅供参考。