1

私は 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 の応答が返される理由に関するものです。

4

1 に答える 1