私は Laravel 5.1、ストライプ API を使用しています 2015-10-16
私は処理しようとしています: customer.subscription.deleted だから私はhandleCustomerSubscriptionDeletedをオーバーライドしています が、メソッドは決して呼び出されません.. (他のコード行なしで 200 応答を返しても、ストライプは 500 エラー応答をログに記録します)
ドキュメントで説明されているようにルーティングしています:
Route::post('/stripe/webhook', 'WebhookController@handleWebhook');
カスタムコントローラー:
namespace App\Http\Controllers;
use App\Abbonamento;
use Symfony\Component\HttpFoundation\Response;
use Laravel\Cashier\WebhookController as BaseController;
class WebhookController extends BaseController
{
/**
* Handle a stripe webhook.
*
* @param array $payload
* @return Response
*/
public function handleInvoicePaymentSucceeded($payload)
{
$subscription = $payload['data']['object']['subscription'];
$abbo = Abbonamento::bySubscription($subscription)->first();
if ($abbo)
{
$abbo->makeStripePayment($payload);
}
}
public function handleCustomerSubscriptionDeleted($payload)
{
$subscription = $payload['data']['object']['id'];
$abbo = Abbonamento::bySubscription($subscription)->first();
if ($abbo and $abbo->subscribed())
{
$abbo->subscription()->cancel();
}
return new Response('Webhook Handled', 200);
}
}
「handleInvoicePaymentSucceeded」が機能するのに「handleCustomerSubscriptionDeleted」が呼び出されなかった理由を教えてください。
質問は、私のカスタム エンティティ「Abbonamento」に関するものではなく、customer.subscription.deleted のストライプのテスト環境で常にエラー 500 が返され、invoice.payment_succeeded で OK の応答が返される理由に関するものです。