2016-07-07 16 views
0

私のウェブアプリケーションは支払い処理にStripeを使用しています。私は、mysite.com/callbackを呼び出すStripeのwebhookを持っています。 Webhookをテストしようとすると、タイムアウトします。オーダーはmy/chargeルートで正常に処理され、Stripeに表示されます。'テストウェブフックエラー:タイムアウト' on Stripe

私/コールバックのルートに問題がありますか? DB内のデータは更新されません。ここで

は、コールバックのルートです:

Route::post('/callback', function() { 

http_response_code(200); 
    $amount=array('1900'=>array('name'=>'small','period'=>"+1 month",'visits'=>1000), 
       '7900'=>array('name'=>'medium','period'=>"+3 month",'visits'=>10000), 
       '14900'=>array('name'=>'large','period'=>"+6 month",'visits'=>25000), 
       '39900'=>array('name'=>'xlarge','period'=>"+12 month",'visits'=>100000), 
       '79900'=>array('name'=>'enterprise','period'=>"+24 month",'visits'=>500000), 
      ); 

$input =Input::all(); 

$email = $input["data"]["object"]["source"]["name"]; 
$stripe_plan=$amount[$input["data"]["object"]['amount']]['name']; 

$user = DB::table('users') 
        ->where('email',$email) 
        ->select('remaining_visits','subscription_ends_at')->first(); 

$date=$user->subscription_ends_at; 
$remaining_visits=$user->remaining_visits+$amount[$input["data"]["object"]['amount']]['visits']; 

$affectedRows=User::where('email',$email)->update(['secret' => uniqid(),'stripe_active' => 1,'stripe_plan'=>$stripe_plan,'remaining_visits'=>$remaining_visits,'subscription_ends_at'=> date('Y-m-d H:i:s', strtotime($date.$amount[$input["data"]["object"]['amount']]['period']))]); 

}); 

答えて

0

Laravelのように見え、それがストライプが応答を取得していないので、その関数は、何も返さないように見えます。私はあなたがそこにこのような何かをしたい疑う:

try { 
    return response("", 200); 
} finally { 
    // All the other fun stuff you're doing after you respond 
} 

注:Partly stolen from this answer...