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

View File

@ -38,18 +38,23 @@ class PaymentController extends Controller
{
$this->validate($request, [
'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);
$aggregator_id = $request->input('aggregator_id');
if($payment_method == PaymentMethod::CARD){
$aggregator = PaymentAggregator::where('name','like','%stripe%')->firstOrFail();
if($aggregator_id){
$aggregator = PaymentAggregator::findOrFail($aggregator_id);
}else{
$aggregator = PaymentAggregator::where('status',1)->firstOrFail();
if($payment_method == PaymentMethod::CARD){
$aggregator = PaymentAggregator::where('name','like','%stripe%')->firstOrFail();
}else{
$aggregator = PaymentAggregator::where('status',1)->firstOrFail();
}
}
$data = $request->all();
$request = new Request();
$request->merge(array_merge($data,[