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

如何在X个月后取消Stripe支付?WordPress双月订阅终止方案

解决方案:WordPress + Stripe 处理特定支付场景

一、自动终止第三种「分两笔支付」订阅

第三种支付本质是仅两期的有限订阅,核心是让Stripe在两笔款项完成后自动终止,无需手动干预。

实现步骤:

  1. Stripe后台配置订阅计划

    • 新建月度订阅产品,设置单期金额为X欧元,在「计费周期」选项中开启限制计费次数,输入2。这样订阅只会触发2次扣费,完成后自动终止,不会产生后续账单。
  2. WordPress端适配

    • 若使用WooCommerce + Stripe插件:
      在产品编辑页选择「订阅产品」,关联上述Stripe两期计划即可。插件会同步Stripe的计费次数限制,到期自动终止订阅。
    • 若自定义开发:
      调用Stripe API创建订阅时,直接关联已设置好的两期计划ID即可,无需额外参数。示例代码片段:
      $stripe = new \Stripe\StripeClient('你的API密钥');
      $subscription = $stripe->subscriptions->create([
        'customer' => $customer_stripe_id,
        'items' => [['price' => '你的两期计划价格ID']],
      ]);
      

二、X个月后自动取消Stripe订阅

针对需要在指定时长后终止的长期订阅,有两种可靠实现方式:

方式1:通过Stripe API设置自动取消时间

直接给目标订阅设置cancel_at参数,指定X个月后的时间戳,Stripe会自动在该时间点取消订阅。示例代码:

$stripe->subscriptions->update(
  '目标订阅ID',
  ['cancel_at' => strtotime("+X months")]
);

方式2:WordPress定时任务触发取消

若需要在WordPress端控制流程,可借助WP Cron添加定时任务,到期后调用Stripe API取消订阅:

// 注册定时任务
function schedule_stripe_subscription_cancel($subscription_id, $months) {
  $cancel_timestamp = strtotime("+$months months");
  wp_schedule_single_event($cancel_timestamp, 'trigger_stripe_subscription_cancel', [$subscription_id]);
}

// 执行取消操作的回调
function trigger_stripe_subscription_cancel($subscription_id) {
  $stripe = new \Stripe\StripeClient('你的API密钥');
  $stripe->subscriptions->cancel($subscription_id);
}
add_action('trigger_stripe_subscription_cancel', 'trigger_stripe_subscription_cancel');

注意:WP Cron依赖网站访问触发,若站点流量较低,建议搭配服务器级定时任务(如Linux Cron)确保执行。

关键注意事项

  • 确保Stripe API密钥拥有订阅读写权限。
  • 测试阶段使用Stripe测试模式,模拟扣费和取消流程验证逻辑。
  • 分两笔支付的场景务必设置计费次数限制,避免误设为无限续费订阅。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:27:21