在付费计划中创建新的 Stripe 用户,设置试用期,无需信用卡


Create a new Stripe user on a paid plan, setting a trial period, without a Credit Card

使用 Stripe API,在没有信用卡令牌的情况下,在付费计划中创建新用户和试用期似乎不起作用。

我正在使用 PHP SDK 并执行以下操作:

$customer = 'Stripe'Customer::create(array(
    "source" => NULL,
    "plan" => 'PROFESSIONAL',
    "email" => $email_address,
    "trial_end" => $unix_timestamp
);

返回错误:

错误:源对象无效:必须是字典或非空字符串。

我认为这应该有两个原因,这就是为什么我认为我做错了什么。

  1. 添加trial_end会向订阅添加试用版,因此无需付款,这意味着在该时间点不需要信用卡。
  2. 使用 Stripe 在线门户,您可以在指定试用期时创建付费订阅用户,还可以将现有用户转移到付费订阅,而无需信用卡。如果可以在门户中执行此操作,为什么不能通过 API 执行此操作?
文档中是否遗漏了允许

我执行此操作的内容?

刚刚尝试了以下有效的方法。

$customer = 'Stripe'Customer::create(array(
    "plan" => 'PROFESSIONAL',
    "email" => $email_address,
    "trial_end" => $unix_timestamp
);

基本上我只是完全删除了source键/值。然后,它通过试用版在付费计划上创建了用户。

奇怪的行为,因为当您在免费计划上创建用户时,您可以将值为 NULLsource 键放在那里并且它可以工作。据我所知,也没有记录在案。

按照以下步骤操作

  1. 使用 创建客户

    ''

    stripe''Customer::create(array( "描述" => $descriptions, "电子邮件" => $email ));

  2. 存储从条带返回的客户 ID

  3. 现在为客户订阅该计划

    $customer = ''stripe''Customer::retrieve($customer_id);

    $subscriptions = $customer->

    subscriptions->create(array("plan" => $plan_id));

请确保已在条纹上创建了计划。