diff --git a/app/Http/Controllers/CinetpayController.php b/app/Http/Controllers/CinetpayController.php index ce1864d..62351d7 100644 --- a/app/Http/Controllers/CinetpayController.php +++ b/app/Http/Controllers/CinetpayController.php @@ -49,7 +49,7 @@ class CinetpayController extends Controller */ public function getMethods() { - return $this->successResponse(['ALL', 'MOBILE_MONEY','CREDIT_CARD','WALLET']); + return $this->successResponse(['ALL', 'MOBILE_MONEY','CREDIT_CARD']); } // diff --git a/app/Http/Controllers/PaymentController.php b/app/Http/Controllers/PaymentController.php index dfd269a..b58b9b8 100644 --- a/app/Http/Controllers/PaymentController.php +++ b/app/Http/Controllers/PaymentController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Models\PaymentAggregator; +use GuzzleHttp\Client; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; @@ -10,19 +11,30 @@ class PaymentController extends Controller { public function getMethods(Request $request) { - $this->validate($request, [ - 'aggregator_id' => 'required|integer|exists:payment_aggregators,id', - ]); + $aggregator = PaymentAggregator::where('status', 1)->first(); + if (!$aggregator) { + return $this->errorResponse(trans('errors.model_not_found', ['model' => 'methods'])); + } - $aggregator = PaymentAggregator::findOrFail($request->input('aggregator_id')); + Log::info($aggregator->name); - switch(strtolower($aggregator->name)){ + switch (strtolower($aggregator->name)) { case 'yoomee': - return redirect()->route('yoomee.methods', $request->all()); + $client = new Client([ + 'base_uri' => config('variables.yoomee_api_url'), + 'timeout' => 60, + ]); + $response = $client->get('operators'); + return $this->successResponse(json_decode($response->getBody()->getContents())); case 'yoomeev2': - return redirect()->route('yoomee.v2.methods', $request->all()); + $client = new Client([ + 'base_uri' => config('variables.yoomee_api_v2_url'), + 'timeout' => 60, + ]); + $response = $client->get('providers/v1'); + return $this->successResponse(json_decode($response->getBody()->getContents())); case 'cinetpay': - return redirect()->route('cinetpay.methods', $request->all()); + return $this->successResponse(['ALL', 'MOBILE_MONEY', 'CREDIT_CARD']); default: return $this->errorResponse(__('errors.unexpected_error')); } @@ -36,7 +48,7 @@ class PaymentController extends Controller $aggregator = PaymentAggregator::findOrFail($request->input('aggregator_id')); - switch(strtolower($aggregator->name)){ + switch (strtolower($aggregator->name)) { case 'yoomee': return redirect()->route('yoomee.pay', $request->all()); case 'yoomeev2': diff --git a/database/migrations/2022_07_06_132028_create_payment_aggregators_table.php b/database/migrations/2022_07_06_132028_create_payment_aggregators_table.php new file mode 100644 index 0000000..a2fbb49 --- /dev/null +++ b/database/migrations/2022_07_06_132028_create_payment_aggregators_table.php @@ -0,0 +1,36 @@ +id(); + $table->string('name'); + $table->string('email'); + $table->string('address'); + $table->string('phone'); + $table->boolean('status')->default(0); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('payment_aggregators'); + } +} diff --git a/routes/web.php b/routes/web.php index 5f8b7c7..0b1487d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -24,7 +24,7 @@ $router->group(['prefix' => '', 'middleware' => 'auth'], function () use ($route /** * Entry Endpoints */ - $router->post('methods','PaymentController@getMethods'); + $router->get('methods','PaymentController@getMethods'); $router->post('pay','PaymentController@pay');