feat: deeplink
This commit is contained in:
parent
6a24d07cec
commit
51b50aa1d0
|
|
@ -5,7 +5,9 @@ namespace App\Http\Controllers;
|
||||||
use App\Enums\CreditProductType;
|
use App\Enums\CreditProductType;
|
||||||
use App\Http\Resources\CreditProductResource;
|
use App\Http\Resources\CreditProductResource;
|
||||||
use App\Models\CreditProduct;
|
use App\Models\CreditProduct;
|
||||||
|
use App\Services\MobileDeepLink;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use Illuminate\Http\RedirectResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
||||||
|
|
||||||
|
|
@ -74,6 +76,13 @@ class BillingController extends Controller
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function redirectToMobileApp(string $status): RedirectResponse
|
||||||
|
{
|
||||||
|
abort_unless(in_array($status, ['success', 'cancel', 'portal'], true), 404);
|
||||||
|
|
||||||
|
return redirect()->away(MobileDeepLink::to("billing/{$status}"));
|
||||||
|
}
|
||||||
|
|
||||||
private function ensureStripeCustomer(mixed $user): void
|
private function ensureStripeCustomer(mixed $user): void
|
||||||
{
|
{
|
||||||
if (! is_object($user) || ! method_exists($user, 'createOrGetStripeCustomer')) {
|
if (! is_object($user) || ! method_exists($user, 'createOrGetStripeCustomer')) {
|
||||||
|
|
@ -85,8 +94,6 @@ class BillingController extends Controller
|
||||||
|
|
||||||
private function redirectUrl(string $status): string
|
private function redirectUrl(string $status): string
|
||||||
{
|
{
|
||||||
$scheme = trim((string) config('app.mobile_scheme', env('APP_MOBILE_SCHEME', 'bowly')), ':/');
|
return route('billing.web-return', ['status' => $status]);
|
||||||
|
|
||||||
return "{$scheme}:///billing/{$status}";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Http\Controllers\AuthController;
|
use App\Http\Controllers\AuthController;
|
||||||
|
use App\Http\Controllers\BillingController;
|
||||||
use App\Http\Controllers\StravaController;
|
use App\Http\Controllers\StravaController;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
|
|
@ -10,3 +11,4 @@ Route::post('password/reset', [AuthController::class, 'resetPasswordFromView'])
|
||||||
->middleware('throttle:6,1')
|
->middleware('throttle:6,1')
|
||||||
->name('password.web-update');
|
->name('password.web-update');
|
||||||
Route::get('strava/callback', [StravaController::class, 'redirectToMobileApp'])->name('strava.web-callback');
|
Route::get('strava/callback', [StravaController::class, 'redirectToMobileApp'])->name('strava.web-callback');
|
||||||
|
Route::get('billing/return/{status}', [BillingController::class, 'redirectToMobileApp'])->name('billing.web-return');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue