在付费计划中创建新的 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
);

其中returns错误:

Error: Invalid source object: must be a dictionary or a non-empty string.

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

  1. 添加 trial_end 会在订阅中添加试用期,因此无需付款,这意味着此时不需要信用卡。
  2. 使用 Stripe 在线门户,您可以在付费订阅上创建用户,并且在指定试用期后,无需信用卡即可将现有用户转移到付费订阅。如果您可以在门户网站上完成,为什么不能通过 API?

文档中是否遗漏了允许我执行此操作的内容?

按照这些步骤操作

  1. 使用

    创建客户

    \Stripe\Customer::创建(数组( "description" => $描述, "email" => $电子邮件 ));

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

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

    $客户=\Stripe\Customer::检索($customer_id);

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

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

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

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

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

奇怪的行为,当你在免费计划中创建一个用户时,你可以在那里设置 source 键,值为 NULL 并且它有效。据我所知也没有记录。