You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改已存在的Stripe客户及订阅的测试时钟?

如何为已存在的Stripe客户修改测试时钟

我需要为前端UI创建的现有Stripe客户修改测试时钟以进行测试,但Stripe官方文档仅覆盖了新建客户关联测试时钟的场景,尝试直接更新客户或订阅对象的test_clock字段时被拒绝,求可行方案。


核心限制说明

Stripe的test_clock字段仅支持在创建客户时指定,不允许为已存在的客户添加或修改该字段,这是平台的固有规则。

可行迁移方案

要实现测试时钟的快进需求,需将现有客户的订阅和支付信息迁移到关联了测试时钟的新客户上,步骤如下:

  1. 创建新的测试时钟
    使用Stripe API创建一个测试时钟,指定冻结时间:

    curl https://api.stripe.com/v1/test_helpers/test_clocks \
      -u sk_test_你的密钥: \
      -d frozen_time=1680000000
    
  2. 复制现有客户信息到新客户(关联测试时钟)
    将原客户的支付方式、邮箱、账单地址等关键信息复制到新创建的客户,同时绑定测试时钟:

    curl https://api.stripe.com/v1/customers \
      -u sk_test_你的密钥: \
      -d test_clock=tc_你的测试时钟ID \
      -d source=pm_原客户支付方式ID \
      -d email=原客户邮箱@example.com
    
  3. 取消原客户的订阅(测试环境)
    在测试环境下可立即取消原订阅,无需等待周期结束:

    curl https://api.stripe.com/v1/subscriptions/sub_原订阅ID \
      -u sk_test_你的密钥: \
      -X DELETE
    
  4. 为新客户创建匹配的订阅
    基于原订阅的计划,为新客户创建相同的订阅:

    curl https://api.stripe.com/v1/subscriptions \
      -u sk_test_你的密钥: \
      -d customer=cus_新客户ID \
      -d items[0][price]=price_原订阅计划ID \
      -d payment_behavior=default_incomplete
    
  5. 快进测试时钟
    现在可以通过API快进测试时钟,验证订阅的周期触发逻辑:

    curl https://api.stripe.com/v1/test_helpers/test_clocks/tc_你的测试时钟ID/advance \
      -u sk_test_你的密钥: \
      -d frozen_time=1680864000
    

优化建议

如果后续还有类似测试需求,可在前端创建客户时增加环境判断:测试环境下直接为新客户关联测试时钟,避免后续迁移操作。

内容的提问来源于stack exchange,提问作者JCM88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 16:40:06