fix: payment method in cinetpay controller and aggregator while make payment

This commit is contained in:
Djery-Tom 2023-08-19 09:49:14 +01:00
parent a808210b3a
commit 5bdc61414f
2 changed files with 16 additions and 7 deletions

View File

@ -78,7 +78,7 @@ class CinetpayController extends Controller
// 'aggregator_id' => 'required|integer', // 'aggregator_id' => 'required|integer',
'amount' => 'required|numeric|min:5', 'amount' => 'required|numeric|min:5',
'currency' => 'required|string|size:3', 'currency' => 'required|string|size:3',
// 'payment_method' => 'nullable|string|in:ALL,MOBILE_MONEY,CREDIT_CARD,WALLET', 'payment_method' => 'nullable|string',
'customer_id' => 'required|integer', 'customer_id' => 'required|integer',
'customer_email' => 'required|email', 'customer_email' => 'required|email',
'customer_name' => 'nullable|string', 'customer_name' => 'nullable|string',
@ -92,10 +92,14 @@ class CinetpayController extends Controller
'reason' => 'required|string' 'reason' => 'required|string'
]); ]);
$paymentMethods = ['ALL','MOBILE_MONEY','CREDIT_CARD','WALLET'];
$aggregator = PaymentAggregator::where('name','like','%cinetpay%')->firstOrFail(); $aggregator = PaymentAggregator::where('name','like','%cinetpay%')->firstOrFail();
$transaction_id = $this->getTransactionID(); $transaction_id = $this->getTransactionID();
$payment_method = $request->input('payment_method');
if(!in_array($payment_method, $paymentMethods)){
$payment_method = 'ALL'; $payment_method = 'ALL';
}
$amount = $request->input('amount'); $amount = $request->input('amount');
$currency = $request->input('currency'); $currency = $request->input('currency');

View File

@ -38,17 +38,22 @@ class PaymentController extends Controller
{ {
$this->validate($request, [ $this->validate($request, [
'payment_method' => 'nullable|string', 'payment_method' => 'nullable|string',
// 'aggregator_id' => 'required_without:payment_method|integer|exists:payment_aggregators,id', 'aggregator_id' => 'nullable|integer|exists:payment_aggregators,id',
]); ]);
$payment_method = $request->input('payment_method', PaymentMethod::CARD); $payment_method = $request->input('payment_method', PaymentMethod::CARD);
$aggregator_id = $request->input('aggregator_id');
if($aggregator_id){
$aggregator = PaymentAggregator::findOrFail($aggregator_id);
}else{
if($payment_method == PaymentMethod::CARD){ if($payment_method == PaymentMethod::CARD){
$aggregator = PaymentAggregator::where('name','like','%stripe%')->firstOrFail(); $aggregator = PaymentAggregator::where('name','like','%stripe%')->firstOrFail();
}else{ }else{
$aggregator = PaymentAggregator::where('status',1)->firstOrFail(); $aggregator = PaymentAggregator::where('status',1)->firstOrFail();
} }
}
$data = $request->all(); $data = $request->all();
$request = new Request(); $request = new Request();