简单的问题,但我无法一生解决这个问题。
我的Stripe帐户有3个订阅,一个是免费的,两个订阅的试用期为14天(在Stripe中设置)。一切正常,除了当我立即为新用户订阅付费试用计划时,我不断收到有关客户没有存档付款来源的错误消息。我的代码如下:
// Create new User
$user = new Account($validatedUserData);
// Create Stripe user and subscribe to plan. Laravel automatically adds Stripe Customer ID
// Free plan, create customer and subscribe to free plan in one line of code
if ($planInRequest == 1) {
$user->newSubscription('My Subscription', 'Free Plan')->create(null, ['email' => $user->email]);
}
// If Paid plan...
else {
// Create user in Stripe first (this works)
$user->createAsStripeCustomer(null);
// Subscribe user to paid plan with trial period
$user->newSubscription('My Subscription', $planToUse)->create(null, ['email' => $user->email]); }
但是,当我运行此代码时,出现错误
不存在客户的付款来源。
我知道我尚未向客户添加Stripe Source(因此传递null),但是我认为如果有免费试用期,我现在可以为其订购。我也尝试也不将null传递给付费计划订阅(as per this SO post),但这给了我一个无效的令牌错误。
我的用户模型还包含Laravel文档推荐的“ trial_ends_at”,“ updated_at”和“ created_at”字段。将Stripe客户添加得很好,当我尝试将付费订阅添加到Stripe仪表板中的新客户时,一切正常。
有人有什么想法吗?非常感谢您的帮助!
答案 0 :(得分:0)
最终弄清楚了我在挖掘Cashier的Billable,Subscription和SubscriptionBuilder控制器后必须在试验计划中使用以下代码,以防万一其他人遇到相同的问题!
$user->newSubscription('My Subscription', $planToUse)->trialUntil($user->trial_ends_at)->create(null, [
'email' => $user->email,
'description' => $user->name
]);