fix: amount verification in StripeController

This commit is contained in:
Djery-Tom 2023-10-09 16:42:32 +01:00
parent cedd5db6b4
commit 5ef2ff4cf4
3 changed files with 18 additions and 10 deletions

View File

@ -57,13 +57,14 @@ class StripeController extends Controller
return view('stripe-checkout', compact('amount','receiver','receiver_logo','payment_token'));
}
// Formulaire de paiement
public function pay(Request $request)
{
try {
$this->validate($request, [
'aggregator_id' => 'required|integer',
'amount' => 'required|numeric|min:5',
'amount' => 'required|numeric',
'currency' => 'required|string|size:3',
'customer_id' => 'nullable',
'payment_method' => 'nullable|string',
@ -84,8 +85,8 @@ class StripeController extends Controller
$amount = $request->input('amount');
$currency = $request->input('currency');
if($amount < 325 && $currency == 'XAF'){
$amount = 325;
if($amount <= 0 || $this->toMoneyAmount($amount, $currency , 'USD') < 1 ){
return $this->errorResponse(__('errors.minimum_amount_required'));
}
$payment_token = $this->getTransactionToken();
@ -228,6 +229,7 @@ class StripeController extends Controller
// Encaissement de l'argent des clients
public function payIn(Request $request)
{
$this->validate($request, [
@ -236,7 +238,7 @@ class StripeController extends Controller
'exp_year' => 'required',
'cvc' => 'required',
// 'aggregator_id' => 'required|integer',
'amount' => 'required|numeric|min:5',
'amount' => 'required|numeric',
'currency' => 'required|string|size:3',
'customer_id' => 'nullable',
// 'payment_method' => 'nullable|string', // Actuallu it's only CARD
@ -258,8 +260,8 @@ class StripeController extends Controller
$amount = $request->input('amount');
$currency = $request->input('currency');
if($amount < 325 && $currency == 'XAF'){
$amount = 325;
if($amount <= 0 || $this->toMoneyAmount($amount, $currency , 'USD') < 1 ){
return $this->errorResponse(__('errors.minimum_amount_required'));
}
@ -344,6 +346,7 @@ class StripeController extends Controller
}
// Recharge des comptes clients
public function payOut(Request $request)
{
$this->validate($request, [
@ -355,7 +358,7 @@ class StripeController extends Controller
'bank_currency' => 'required_if:payment_method,BANK|string|size:3',
'bank_account_number' => 'required_if:payment_method,BANK|string',
// 'aggregator_id' => 'required|integer',
'amount' => 'required|numeric|min:5',
'amount' => 'required|numeric',
'currency' => 'required|string|size:3',
'customer_id' => 'nullable',
'payment_method' => 'required|string|in:CARD,BANK',
@ -378,6 +381,10 @@ class StripeController extends Controller
$currency = $request->input('currency');
$payment_method = $request->input('payment_method');
if($amount <= 0 || $this->toMoneyAmount($amount, $currency , 'USD') < 1 ){
return $this->errorResponse(__('errors.minimum_amount_required'));
}
$transaction = PaymentTransaction::create([
'aggregator_id' => $aggregator->id,
"currency" => $request->input('currency'),

View File

@ -6,6 +6,6 @@ return [
'service_unavailable' => 'Service unavailable',
'timeout' => "The server did not receive a complete response within the timeout period. Please Try again later",
'network_not_taken' => "Network not taken into account",
'service_unavailable_try_later' => "Service not available. please try again later"
'service_unavailable_try_later' => "Service not available. please try again later",
'minimum_amount_required' => "Transaction amount is less than the minimum authorized amount"
];

View File

@ -6,5 +6,6 @@ return [
'service_unavailable' => 'Service non disponible',
'timeout' => "Le serveur n'a pas reçu de réponse complete dans le délai imparti. Essayer plus tard",
'network_not_taken' => "Réseau non pris en compte",
'service_unavailable_try_later' => "Service non disponible. Veuillez réessayer plus tard"
'service_unavailable_try_later' => "Service non disponible. Veuillez réessayer plus tard",
'minimum_amount_required' => "Le montant de la transaction est inférieur au montant minimal autorisé"
];