72 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Http\Controllers;
 | |
| 
 | |
| use App\Models\PaymentAggregator;
 | |
| use GuzzleHttp\Client;
 | |
| use Illuminate\Http\Request;
 | |
| use Illuminate\Support\Facades\Log;
 | |
| 
 | |
| class PaymentController extends Controller
 | |
| {
 | |
|     public function getMethods(Request $request)
 | |
|     {
 | |
|         $aggregator = PaymentAggregator::where('status', 1)->first();
 | |
|         if (!$aggregator) {
 | |
|             return $this->errorResponse(trans('errors.model_not_found', ['model' => 'methods']));
 | |
|         }
 | |
| 
 | |
|         Log::info($aggregator->name);
 | |
| 
 | |
|         switch (strtolower($aggregator->name)) {
 | |
|             case 'yoomee':
 | |
|                 $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':
 | |
|                 $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 $this->successResponse(['ALL', 'MOBILE_MONEY', 'CREDIT_CARD']);
 | |
|             default:
 | |
|                 return $this->errorResponse(__('errors.unexpected_error'));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function pay(Request $request)
 | |
|     {
 | |
|         $this->validate($request, [
 | |
|             'aggregator_id' => 'required|integer|exists:payment_aggregators,id',
 | |
|         ]);
 | |
| 
 | |
|         $aggregator = PaymentAggregator::findOrFail($request->input('aggregator_id'));
 | |
| 
 | |
|         switch (strtolower($aggregator->name)) {
 | |
|             case 'yoomee':
 | |
|                 return redirect()->route('yoomee.pay', $request->all());
 | |
|             case 'yoomeev2':
 | |
|                 return redirect()->route('yoomee.v2.pay', $request->all());
 | |
|             case 'cinetpay':
 | |
|                 return redirect()->route('cinetpay.pay', $request->all());
 | |
|             default:
 | |
|                 return $this->errorResponse(__('errors.unexpected_error'));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function paymentResult(Request $request)
 | |
|     {
 | |
|         if($request->has('token')){
 | |
|             return $this->successResponse($request->all());
 | |
|         }else{
 | |
|             return $this->errorResponse($request->all());
 | |
|         }
 | |
|     }
 | |
| }
 |