如何更改 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 能确认后台的实际计费主体并处理错误收费。
备注:内容仅供参考。
