在付费套餐中创建新的Stripe用户,设置试用期,不使用信用卡

时间:2016-07-15 12:55:23

标签: php stripe-payments

使用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执行此操作?
  3. 文档中是否有我遗漏的内容允许我这样做?

2 个答案:

答案 0 :(得分:1)

尝试了以下有效的方法。

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

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

奇怪的行为,就像您在免费套餐中创建用户一样,您可以在其中设置source密钥,其值为NULL并且有效。据我所知,还没有记录。

答案 1 :(得分:0)

按照以下步骤

  1. 使用

    创建客户

    \条纹\客户::创建(阵列(                     "描述" => $描述,                     "电子邮件" => $电子邮件                 ));

  2. 存储条件

  3. 中返回的客户ID
  4. 现在订阅该计划的客户

    $ customer = \ Stripe \ Customer :: retrieve($ customer_id);

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

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