Laravel Cashier退货订阅信息

时间:2016-09-22 19:18:07

标签: laravel stripe-payments laravel-5.3 laravel-cashier

我在实施Laravel Cashier时遇到了一个令人头痛的问题,我已经成功创建了一个订阅,收取了卡,收到了令牌并将所有上述信息存储在订阅表中。

我使用以下代码执行此操作,由于某些原因标准方法不起作用:

public function createSubscription(Request $request) {

    \Stripe\Stripe::setApiKey('sk_test_XXXXXXXXXXXXXXXXX');
      Auth::user('id')->newSubscription('monthly', 'basic')->trialDays(30)->create($request->stripeToken);
      Session::flash('message', 'Your subscription has been updated, thank you.');
            return view('pages.packages')->with('user', Auth::user());
}

尽管这与我们被告知要使用的标准代码不同,但它仍然有效! 继续前进,所以当数据进入表格时,我应该可以调用下一个收银员来检查用户是否已订阅;

$user->subscribed();

当然,如果我们继续前进,我必须在此之前构建代码,我们最终得到类似的东西;

Auth::user('id')->subscribed();

这不起作用,它没有错误,它只是每次都返回false,所以为了避免观点和所有这些,我做了这个;

dd(Auth::user('id')->subscribed());

所有这些都是假的,无论用户或包装在哪里!

我觉得我的User.php中可能缺少某些东西,这是我们将收银台作为用户模型的一部分附加的地方!像这样;

namespace App;

 use Illuminate\Notifications\Notifiable;
 use Illuminate\Foundation\Auth\User as Authenticatable;
use Laravel\Cashier\Billable;



class User extends Authenticatable
{
use Billable;
use Notifiable;

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [
    'name', 'email', 'password',
];

/**
 * The attributes that should be hidden for arrays.
 *
 * @var array
 */
protected $hidden = [
    'password', 'remember_token',
];

/**
 * The attributes that should be hidden for arrays.
 *
 * @var array
 */
protected $dates = [
    'trial_ends_at', 'subscription_ends_at',
];
}

现在我可能在这里犯了一个非常明显的错误,但是这个应用程序正在吞没我的存在,所以任何帮助都会非常感激!

由于

1 个答案:

答案 0 :(得分:2)

非常感谢@ceejayoz,这个小问题的答案不是调用保存到条带的实际计划ID,而是调用('月')代替!

$user->subscribed('monthly');