2016-09-22 10 views
-1

私は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(); 

これが機能していない、それはとても景色を避けるために、それだけで偽のたびに戻っている、アウトerroringとすべてがされていない、私はこれをしませんでした。

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

これらの番組はすべて、ユーザーやパッケージに関係なく偽です。

キャッシャーをUserモデルの一部として添付した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', 
]; 
} 

今、私はここで本当に明白な間違いを作ることができますが、このアプリケーションは、任意のヘルプは大歓迎ですので、ここで私の存在を巻き込むています!

おかげで、この小さな問題に答えを@ceejayozするために多くのおかげで

+0

"私は次のコードを使用してこの作業を行っていますが、何らかの理由で標準的な方法が動作していません..."なぜそこから始めませんか?どのような標準的な方法ですか?なぜ彼らは働いていないのですか?そのようなことは、解決すべきあなたのアプリケーションのより大きな問題に話しています。 – ceejayoz

+0

標準的な方法はかなり正直なところ私の変換で構成され、Authの部分は$ user ...の変数になります。 その部分に小さな違いがあります。 私は何時間もウェブを精査して、それを理解しようとしています。\ あなたは何か提案できますか? ありがとう –

+0

現在のユーザは '$ request-> user()'でアクセスすることができます。あるいは、 'public function createSubscription(Request $ request、\ Illuminate \ Contracts \ Auth \ Factory $ user) '$ user'を自動的にあなたの関数で利用できるようにします。 – ceejayoz

答えて

2

がストライプに保存されている実際のプランIDを呼び出すことはありませんが、その代わりに(「毎月」)を呼び出すことです!

$user->subscribed('monthly'); 
+0

これはどのようなダム設定ですか? idの代わりにサブスクリプション名を渡すには??? God Lord私は3時間かけて、サブスクリプションに関連するすべてが私のモデル上でなぜヌルであるのか理解しようとしました。私はあなたの答えを間違って読んだことを誓っています。 –

関連する問題