feat: enable flutterwave payment methods

This commit is contained in:
Djery-Tom 2023-08-31 12:42:40 +01:00
parent 4de520e861
commit 1178006d65
3 changed files with 43 additions and 0 deletions

View File

@ -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)
{

View File

@ -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'));
}

View File

@ -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']);