diff --git a/app/Http/Controllers/FlutterwaveController.php b/app/Http/Controllers/FlutterwaveController.php index 8d451dc..de37b61 100644 --- a/app/Http/Controllers/FlutterwaveController.php +++ b/app/Http/Controllers/FlutterwaveController.php @@ -32,6 +32,46 @@ class FlutterwaveController extends Controller } + /** + * @OA\Get( + * path="/flutterwave/methods", + * summary="Afficher la liste des methodes de Flutterwave", + * tags={"Flutterwave"}, + * security={{"api_key":{}}}, + * @OA\Response( + * response=200, + * description="OK", + * @OA\JsonContent( + * ref="#/components/schemas/ApiResponse", + * example = { + * "status" : 200, + * "response" : {"hasWebview": true, "methods": { "MOBILE_MONEY": "Mobile Money", "CREDIT_CARD": "Carte de crédit" }}, + * "error":null + * } + * ) + * ) + * ) + */ + public function getMethods() + { + $providers = [ +// 'ALL', + 'MOBILE_MONEY', +// 'CREDIT_CARD', + ]; + $methods = []; + foreach ($providers as $provider) { + $key = 'providers.' . $provider; + $method['title'] = Lang::has($key) ? __($key) : $provider; + $method['value'] = $provider; + $methods[] = $method; + } + return $this->successResponse([ + 'hasWebview' => true, + 'methods' => $methods, + ]); + } + // public function pay(Request $request) { diff --git a/app/Http/Controllers/PaymentController.php b/app/Http/Controllers/PaymentController.php index de5d791..4e02dba 100644 --- a/app/Http/Controllers/PaymentController.php +++ b/app/Http/Controllers/PaymentController.php @@ -29,6 +29,8 @@ class PaymentController extends Controller return app(YoomeeV2Controller::class)->getMethods(); case 'cinetpay': return app(CinetpayController::class)->getMethods(); + case 'flutterwave': + return app(FlutterwaveController::class)->getMethods(); default: return $this->errorResponse(__('errors.unexpected_error')); } diff --git a/routes/web.php b/routes/web.php index 04fdeea..e2123c1 100644 --- a/routes/web.php +++ b/routes/web.php @@ -85,6 +85,7 @@ $router->group(['middleware' => 'auth'], function () use ($router) { * Flutterwave Endpoints */ $router->group(['prefix' => 'flutterwave'], function () use ($router) { + $router->get('methods',['as' => 'flutterwave.methods', 'uses' => 'FlutterwaveController@getMethods']); $router->addRoute(['GET','POST'],'pay',['as' => 'flutterwave.pay', 'uses' => 'FlutterwaveController@pay']); $router->post('payOut',['as' => 'flutterwave.payout', 'uses' => 'FlutterwaveController@payOut']); $router->get('checkBalance',['as' => 'flutterwave.check-balance', 'uses' => 'FlutterwaveController@checkBalance']);