Saya mempunyai 2 laluan, satu untuk berhenti melanggan dan satu untuk memulihkan, kedua-dua laluan adalah sama kecuali nama/fungsi/url melainkan saya tertinggal sesuatu. Apabila saya membatalkan langganan resume, saya mengklik url /resume, ia menjalankan fungsi dan kemudian kembali, semuanya begitu pantas dan seolah-olah tidak pernah meninggalkan halaman, kemudian ia memancarkan mesej kejayaan.
Url /cancel saya hanya pergi ke halaman kosong (saya agak pasti ini betul kerana jika ia berfungsi dengan betul anda tidak akan melihatnya) dan ia menjalankan fungsi batal tetapi tidak kembali. Apabila saya kembali secara manual menggunakan butang belakang ia memancarkan mesej kejayaan. Cuma tidak faham mengapa ia tidak kembali sendiri seperti yang diharapkan. Selain itu, jika anda memerlukan sebarang maklumat lain, sila beritahu saya.
Kerja:
Route::get('/resume', function (Request $request) { // $user = User::find(1); $user = Auth::user(); $response = $user->subscription()->resume(); toastr()->success('Your subscription has been successfully resumed.', 'Success' , ['closeButton' => 'true','positionClass' => 'toast-top-center']); return back(); });
Tidak berfungsi:
Route::get('/cancel', function (Request $request) { // $user = User::find(1); $user = Auth::user(); $response = $user->subscription()->cancel(); toastr()->success('Your subscription has been successfully cancelled.', 'Success' , ['closeButton' => 'true','positionClass' => 'toast-top-center']); return back(); });
Saya rasa ini tidak perlu, tetapi untuk berjaga-jaga, berikut ialah 2 fungsi dalam pengawal langganan saya.
public function cancel(): self { $response = LemonSqueezy::api('DELETE', "subscriptions/{$this->lemon_squeezy_id}"); $this->sync($response['data']['attributes']); return $this; } /** * Resume the subscription. */ public function resume(): self { if ($this->expired()) { throw new LogicException('Cannot resume an expired subscription.'); } $response = LemonSqueezy::api('PATCH', "subscriptions/{$this->lemon_squeezy_id}", [ 'data' => [ 'type' => 'subscriptions', 'id' => $this->lemon_squeezy_id, 'attributes' => [ 'cancelled' => false, ], ], ]); $this->sync($response['data']['attributes']); return $this; }
Diselesaikan dengan mengulas pada urutan ini https://laracasts.com/discuss/channels/laravel/redirect-with-not-working?page=1&replyId=337923
Saya melakukan ubah hala manual tetapi itu juga tidak berfungsi jadi saya menambah ->send() seperti yang dicadangkan oleh thread ini dan itu menyelesaikannya. Saya tidak menguji ini dengan return back();
Kod yang berjaya adalah seperti berikut