使用 Stripe API,在没有信用卡令牌的情况下,在付费计划中创建新用户和试用期似乎不起作用。
我正在使用 PHP SDK 并执行以下操作:
$customer = 'Stripe'Customer::create(array(
"source" => NULL,
"plan" => 'PROFESSIONAL',
"email" => $email_address,
"trial_end" => $unix_timestamp
);
返回错误:
错误:源对象无效:必须是字典或非空字符串。
我认为这应该有两个原因,这就是为什么我认为我做错了什么。
- 添加
trial_end
会向订阅添加试用版,因此无需付款,这意味着在该时间点不需要信用卡。 - 使用 Stripe 在线门户,您可以在指定试用期时创建付费订阅用户,还可以将现有用户转移到付费订阅,而无需信用卡。如果可以在门户中执行此操作,为什么不能通过 API 执行此操作?
我执行此操作的内容?
刚刚尝试了以下有效的方法。
$customer = 'Stripe'Customer::create(array(
"plan" => 'PROFESSIONAL',
"email" => $email_address,
"trial_end" => $unix_timestamp
);
基本上我只是完全删除了source
键/值。然后,它通过试用版在付费计划上创建了用户。
奇怪的行为,因为当您在免费计划上创建用户时,您可以将值为 NULL
的 source
键放在那里并且它可以工作。据我所知,也没有记录在案。
按照以下步骤操作
-
使用 创建客户
''stripe''Customer::create(array( "描述" => $descriptions, "电子邮件" => $email ));
-
存储从条带返回的客户 ID
-
现在为客户订阅该计划
$customer = ''stripe''Customer::retrieve($customer_id);
$subscriptions = $customer->subscriptions->create(array("plan" => $plan_id));
请确保已在条纹上创建了计划。