+ Fix bug

This commit is contained in:
Djery-Tom 2020-06-30 14:09:00 +01:00
parent 29e6282bc1
commit f208af131a
1 changed files with 104 additions and 110 deletions

View File

@ -139,7 +139,7 @@ class iLinkTransactionController extends Controller
$transaction->montant_net_final_country = $this->toMoneyAmount($montantDepot, $init_country, $request->final_country); $transaction->montant_net_final_country = $this->toMoneyAmount($montantDepot, $init_country, $request->final_country);
$transaction->commission_hyp = $transaction->part_reseau_emetteur; $transaction->commission_hyp = $transaction->part_reseau_emetteur;
$transaction->part_reseau_payeur_final_country = $this->toMoneyAmount($transaction->part_reseau_payeur, $init_country, $request->final_country); $transaction->part_reseau_payeur_final_country = $this->toMoneyAmount($transaction->part_reseau_payeur, $init_country, $request->final_country);
if(isset($reseauPayeur)) if (isset($reseauPayeur))
$reseauPayeur->balance_com += $transaction->part_reseau_payeur_final_country; $reseauPayeur->balance_com += $transaction->part_reseau_payeur_final_country;
if ($configPayeur->type == 'ilink') { if ($configPayeur->type == 'ilink') {
$destinataire = User::where('user_code', $request->id_destinataire)->first(); $destinataire = User::where('user_code', $request->id_destinataire)->first();
@ -180,7 +180,7 @@ class iLinkTransactionController extends Controller
$walletHyperviseur->save(); $walletHyperviseur->save();
$walletUser->save(); $walletUser->save();
if(isset($reseauPayeur)) if (isset($reseauPayeur))
$reseauPayeur->save(); $reseauPayeur->save();
$transaction->save(); $transaction->save();
$message = trans('messages.successful_user_send_to_wallet', $message = trans('messages.successful_user_send_to_wallet',
@ -189,7 +189,7 @@ class iLinkTransactionController extends Controller
'init_country' => $this->getCountryName($init_country), 'final_country' => $this->getCountryName($request->final_country), 'init_country' => $this->getCountryName($init_country), 'final_country' => $this->getCountryName($request->final_country),
'sender_code' => $user->user_code, 'receiver_code' => $transaction->id_destinataire]); 'sender_code' => $user->user_code, 'receiver_code' => $transaction->id_destinataire]);
$this->sendMail($user->email, trans('messages.successful_transaction'), $message); $this->sendMail($user->email, trans('messages.successful_transaction'), $message);
return $this->successResponse($message.trans('messages.sent_by_mail')); return $this->successResponse($message . trans('messages.sent_by_mail'));
} }
} else { } else {
return $this->errorResponse(trans('messages.incorrect_user_password')); return $this->errorResponse(trans('messages.incorrect_user_password'));
@ -202,7 +202,7 @@ class iLinkTransactionController extends Controller
if ($request->montant > $walletUser->balance) { if ($request->montant > $walletUser->balance) {
return $this->errorResponse(trans('errors.insufficient_balance')); return $this->errorResponse(trans('errors.insufficient_balance'));
} else { } else {
if(!(isset($user->numero_carte) && isset($user->expiration_date))) if (!(isset($user->numero_carte) && isset($user->expiration_date)))
return $this->errorResponse(trans('errors.no_bank_card_attached')); return $this->errorResponse(trans('errors.no_bank_card_attached'));
$transaction->expiration_date = $user->expiration_date; $transaction->expiration_date = $user->expiration_date;
@ -210,7 +210,7 @@ class iLinkTransactionController extends Controller
$frais = $request->montant * $config->taux_com_user_wallet_carte / 100; $frais = $request->montant * $config->taux_com_user_wallet_carte / 100;
$transaction->montant_net = $montantDepot = $transaction->montant - $frais; $transaction->montant_net = $montantDepot = $transaction->montant - $frais;
$body['amount'] = $this->toUSDAmount($montantDepot,$init_country);; $body['amount'] = $this->toUSDAmount($montantDepot, $init_country);;
$body['card_number'] = $user->numero_carte; $body['card_number'] = $user->numero_carte;
$body['cvv'] = $request->cvv; $body['cvv'] = $request->cvv;
$body['expiry_date'] = $user->expiration_date->format('Y-m'); $body['expiry_date'] = $user->expiration_date->format('Y-m');
@ -235,7 +235,7 @@ class iLinkTransactionController extends Controller
'net' => $this->toMoney($montantDepot, $init_country), 'fees' => $this->toMoney($frais, $init_country), 'net' => $this->toMoney($montantDepot, $init_country), 'fees' => $this->toMoney($frais, $init_country),
'sender_code' => $user->user_code, 'cart_number' => wordwrap($transaction->numero_carte, 4, ' ', true)]); 'sender_code' => $user->user_code, 'cart_number' => wordwrap($transaction->numero_carte, 4, ' ', true)]);
$this->sendMail($user->email, trans('messages.successful_transaction'), $message); $this->sendMail($user->email, trans('messages.successful_transaction'), $message);
return $this->successResponse($message.trans('messages.sent_by_mail')); return $this->successResponse($message . trans('messages.sent_by_mail'));
} else { } else {
return $this->errorResponse(trans('errors.visa_api_failed'), Response::HTTP_INTERNAL_SERVER_ERROR); return $this->errorResponse(trans('errors.visa_api_failed'), Response::HTTP_INTERNAL_SERVER_ERROR);
@ -267,7 +267,7 @@ class iLinkTransactionController extends Controller
$transaction->montant_net_final_country = $this->toMoneyAmount($montantRetrait, $init_country, $request->final_country); $transaction->montant_net_final_country = $this->toMoneyAmount($montantRetrait, $init_country, $request->final_country);
$transaction->commission_hyp = $transaction->part_reseau_emetteur; $transaction->commission_hyp = $transaction->part_reseau_emetteur;
$transaction->part_reseau_payeur_final_country = $this->toMoneyAmount($transaction->part_reseau_payeur, $init_country, $request->final_country); $transaction->part_reseau_payeur_final_country = $this->toMoneyAmount($transaction->part_reseau_payeur, $init_country, $request->final_country);
if(isset($reseauPayeur)) if (isset($reseauPayeur))
$reseauPayeur->balance_com += $transaction->part_reseau_payeur_final_country; $reseauPayeur->balance_com += $transaction->part_reseau_payeur_final_country;
if ($configPayeur->type == 'ilink') { if ($configPayeur->type == 'ilink') {
//Hyperviseur payeur //Hyperviseur payeur
@ -282,7 +282,7 @@ class iLinkTransactionController extends Controller
$transaction->id_wallet_hyp_payeur = $walletHyperviseurPayeur->id; $transaction->id_wallet_hyp_payeur = $walletHyperviseurPayeur->id;
$walletHyperviseurPayeur->save(); $walletHyperviseurPayeur->save();
} }
}else{ } else {
//Emettre requete SSL vers wallet extene correspondant pour recharger le compte dont l'id est : //Emettre requete SSL vers wallet extene correspondant pour recharger le compte dont l'id est :
// $transaction->id_destinataire ; // $transaction->id_destinataire ;
// et le montant est: // et le montant est:
@ -297,7 +297,7 @@ class iLinkTransactionController extends Controller
$transaction->id_wallet_hyp = $walletHyperviseur->id; $transaction->id_wallet_hyp = $walletHyperviseur->id;
$transaction->id_transaction = $this->getTransactionID(); $transaction->id_transaction = $this->getTransactionID();
if(isset($reseauPayeur)) if (isset($reseauPayeur))
$reseauPayeur->save(); $reseauPayeur->save();
$walletHyperviseur->save(); $walletHyperviseur->save();
$walletUser->save(); $walletUser->save();
@ -307,10 +307,10 @@ class iLinkTransactionController extends Controller
$message = trans('messages.successful_user_send_to_cash', $message = trans('messages.successful_user_send_to_cash',
['id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country), 'net_init' => $this->toMoney($montantRetrait, $init_country), ['id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country), 'net_init' => $this->toMoney($montantRetrait, $init_country),
'net_final' => $this->toMoneyWithCurrency($montantRetrait, $init_country, $request->final_country), 'fees' => $this->toMoney($frais + $taxe, $init_country), 'net_final' => $this->toMoneyWithCurrency($montantRetrait, $init_country, $request->final_country), 'fees' => $this->toMoney($frais + $taxe, $init_country),
'init_country' => $this->getCountryName($init_country), 'final_country' => $this->getCountryName($request->final_country),'code' => wordwrap($code_retrait, 4, ' ', true), 'init_country' => $this->getCountryName($init_country), 'final_country' => $this->getCountryName($request->final_country), 'code' => wordwrap($code_retrait, 4, ' ', true),
'sender_code' => $user->user_code, 'receiver_code' => $transaction->id_destinataire,'receiver_name' => $request->prenom_destinataire . ' ' . $request->nom_destinataire]); 'sender_code' => $user->user_code, 'receiver_code' => $transaction->id_destinataire, 'receiver_name' => $request->prenom_destinataire . ' ' . $request->nom_destinataire]);
$this->sendMail($user->email, trans('messages.successful_transaction'),$message ); $this->sendMail($user->email, trans('messages.successful_transaction'), $message);
return $this->successResponse($message.trans('messages.sent_by_mail')); return $this->successResponse($message . trans('messages.sent_by_mail'));
} }
} else { } else {
return $this->errorResponse(trans('messages.incorrect_user_password')); return $this->errorResponse(trans('messages.incorrect_user_password'));
@ -356,12 +356,12 @@ class iLinkTransactionController extends Controller
$transaction->save(); $transaction->save();
$message = trans('messages.successful_user_remove_from_wallet_to_cash', $message = trans('messages.successful_user_remove_from_wallet_to_cash',
['id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country), 'net' => $this->toMoney($montantRetrait, $init_country), ['id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country), 'net' => $this->toMoney($montantRetrait, $init_country),
'fees' => $this->toMoney($frais + $taxe, $init_country), 'code' => wordwrap($code_retrait, 4, ' ', true), 'fees' => $this->toMoney($frais + $taxe, $init_country), 'code' => wordwrap($code_retrait, 4, ' ', true),
'sender_code' => $user->user_code]); 'sender_code' => $user->user_code]);
$this->sendMail($user->email, trans('messages.successful_transaction'),$message ); $this->sendMail($user->email, trans('messages.successful_transaction'), $message);
return $this->successResponse($message.trans('messages.sent_by_mail')); return $this->successResponse($message . trans('messages.sent_by_mail'));
} }
}else{ } else {
return $this->errorResponse(trans('messages.incorrect_user_password')); return $this->errorResponse(trans('messages.incorrect_user_password'));
} }
@ -370,51 +370,49 @@ class iLinkTransactionController extends Controller
$this->validate($request, $transaction->user_card_rules()); $this->validate($request, $transaction->user_card_rules());
$user = $walletUser->user; $user = $walletUser->user;
if ($this->checkPassword($request->password, $user->encrypted_password, $user->salt)) { if ($this->checkPassword($request->password, $user->encrypted_password, $user->salt)) {
if ($request->montant > $walletUser->balance) {
return $this->errorResponse(trans('errors.insufficient_balance')); if (!(isset($user->numero_carte) && isset($user->expiration_date)))
return $this->errorResponse(trans('errors.no_bank_card_attached'));
$transaction->expiration_date = $user->expiration_date;
$transaction->numero_carte = $user->numero_carte;
$frais = $request->montant * $config->taux_com_user_carte_wallet / 100;
$transaction->montant_net = $montantRetrait = $transaction->montant - $frais;
$body['amount'] = $this->toUSDAmount($montantRetrait, $init_country);
$body['card_number'] = $user->numero_carte;
$body['cvv'] = $request->cvv;
$body['expiry_date'] = $user->expiration_date->format('Y-m');
$response = $client->post('fund-transfer-api/v1/transaction/pull', ['json' => $body]);
$code = $response->getStatusCode();
if ($code == 200) {
$transaction->commission_banque = $commissionBanque = $frais * $config->taux_com_banque_retrait_carte_cash_ilink / 100;
//Emettre une trame SSL pour recharger le compte de la banque partenaire du montant de sa commission
$walletUser->balance += $montantRetrait;
$transaction->commission_hyp = $frais * $config->taux_com_hyp_retrait_carte_cash_ilink / 100;
$walletHyperviseur->balance_com += $transaction->commission_hyp;
$transaction->id_wallet_hyp = $walletHyperviseur->id;
$transaction->frais = $frais;
$transaction->date = new \DateTime();
$walletHyperviseur->save();
$walletUser->save();
$transaction->id_transaction = $this->getTransactionID();
$transaction->save();
$message = trans('messages.successful_user_remove_from_cart_to_wallet',
['id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country),
'net' => $this->toMoney($montantRetrait, $init_country), 'fees' => $this->toMoney($frais, $init_country),
'sender_code' => $user->user_code, 'cart_number' => wordwrap($transaction->numero_carte, 4, ' ', true)]);
$this->sendMail($user->email, trans('messages.successful_transaction'), $message);
return $this->successResponse($message . trans('messages.sent_by_mail'));
} else { } else {
if(!(isset($user->numero_carte) && isset($user->expiration_date))) return $this->errorResponse(trans('errors.visa_api_failed'), Response::HTTP_INTERNAL_SERVER_ERROR);
return $this->errorResponse(trans('errors.no_bank_card_attached'));
$transaction->expiration_date = $user->expiration_date;
$transaction->numero_carte = $user->numero_carte;
$frais = $request->montant * $config->taux_com_user_carte_wallet / 100;
$transaction->montant_net = $montantRetrait = $transaction->montant - $frais;
$body['amount'] = $this->toUSDAmount($montantRetrait,$init_country);
$body['card_number'] = $user->numero_carte;
$body['cvv'] = $request->cvv;
$body['expiry_date'] = $user->expiration_date->format('Y-m');
$response = $client->post('fund-transfer-api/v1/transaction/pull', ['json' => $body]);
$code = $response->getStatusCode();
if ($code == 200) {
$transaction->commission_banque = $commissionBanque = $frais * $config->taux_com_banque_retrait_carte_cash_ilink / 100 ;
//Emettre une trame SSL pour recharger le compte de la banque partenaire du montant de sa commission
$walletUser->balance += $montantRetrait;
$transaction->commission_hyp = $frais * $config->taux_com_hyp_retrait_carte_cash_ilink / 100 ;
$walletHyperviseur->balance_com += $transaction->commission_hyp;
$transaction->id_wallet_hyp = $walletHyperviseur->id;
$transaction->frais = $frais;
$transaction->date = new \DateTime();
$walletHyperviseur->save();
$walletUser->save();
$transaction->id_transaction = $this->getTransactionID();
$transaction->save();
$message = trans('messages.successful_user_remove_from_cart_to_wallet',
['id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country),
'net' => $this->toMoney($montantRetrait, $init_country), 'fees' => $this->toMoney($frais, $init_country),
'sender_code' => $user->user_code, 'cart_number' => wordwrap($transaction->numero_carte, 4, ' ', true)]);
$this->sendMail($user->email, trans('messages.successful_transaction'), $message);
return $this->successResponse($message.trans('messages.sent_by_mail'));
} else {
return $this->errorResponse(trans('errors.visa_api_failed'), Response::HTTP_INTERNAL_SERVER_ERROR);
}
} }
} else { } else {
return $this->errorResponse(trans('messages.incorrect_user_password')); return $this->errorResponse(trans('messages.incorrect_user_password'));
} }
@ -423,56 +421,52 @@ class iLinkTransactionController extends Controller
$this->validate($request, $transaction->user_card_rules()); $this->validate($request, $transaction->user_card_rules());
$user = $walletUser->user; $user = $walletUser->user;
if ($this->checkPassword($request->password, $user->encrypted_password, $user->salt)) { if ($this->checkPassword($request->password, $user->encrypted_password, $user->salt)) {
if ($request->montant > $walletUser->balance) {
return $this->errorResponse(trans('errors.insufficient_balance')); if (!(isset($user->numero_carte) && isset($user->expiration_date)))
return $this->errorResponse(trans('errors.no_bank_card_attached'));
$transaction->expiration_date = $user->expiration_date;
$transaction->numero_carte = $user->numero_carte;
$frais = $request->montant * $config->taux_com_user_carte_cash / 100;
$transaction->montant_net = $montantRetrait = $transaction->montant - $frais;
$body['amount'] = $this->toUSDAmount($montantRetrait, $init_country);
$body['card_number'] = $user->numero_carte;
$body['cvv'] = $request->cvv;
$body['expiry_date'] = $user->expiration_date->format('Y-m');
$response = $client->post('fund-transfer-api/v1/transaction/pull', ['json' => $body]);
$code = $response->getStatusCode();
if ($code == 200) {
$transaction->commission_banque = $commissionBanque = $frais * $config->taux_com_banque_retrait_carte_cash_ilink / 100;
//Emettre une trame SSL pour recharger le compte de la banque partenaire du montant de sa commission
$code_retrait = $this->random_string();
$hash = $this->hashSSHA($code_retrait);
$transaction->encrypted_code_retrait = $hash['encrypted'];
$transaction->code_retrait_salt = $hash['salt'];
$transaction->commission_hyp = $frais * $config->taux_com_hyp_retrait_carte_cash_ilink / 100;
$walletHyperviseur->balance_com += $transaction->commission_hyp;
$transaction->id_wallet_hyp = $walletHyperviseur->id;
$transaction->frais = $frais;
$transaction->date = new \DateTime();
$transaction->status_retrait = 0;
$walletHyperviseur->save();
$transaction->id_transaction = $this->getTransactionID();
$transaction->save();
$message = trans('messages.successful_user_remove_from_cart_to_cash',
['id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country),
'net' => $this->toMoney($montantRetrait, $init_country), 'fees' => $this->toMoney($frais, $init_country), 'code' => wordwrap($code_retrait, 4, ' ', true),
'sender_code' => $user->user_code, 'cart_number' => wordwrap($transaction->numero_carte, 4, ' ', true)]);
$this->sendMail($user->email, trans('messages.successful_transaction'), $message);
return $this->successResponse($message . trans('messages.sent_by_mail'));
} else { } else {
if(!(isset($user->numero_carte) && isset($user->expiration_date))) return $this->errorResponse(trans('errors.visa_api_failed'), Response::HTTP_INTERNAL_SERVER_ERROR);
return $this->errorResponse(trans('errors.no_bank_card_attached'));
$transaction->expiration_date = $user->expiration_date;
$transaction->numero_carte = $user->numero_carte;
$frais = $request->montant * $config->taux_com_user_carte_cash/ 100;
$transaction->montant_net = $montantRetrait = $transaction->montant - $frais;
$body['amount'] = $this->toUSDAmount($montantRetrait,$init_country);
$body['card_number'] = $user->numero_carte;
$body['cvv'] = $request->cvv;
$body['expiry_date'] = $user->expiration_date->format('Y-m');
$response = $client->post('fund-transfer-api/v1/transaction/pull', ['json' => $body]);
$code = $response->getStatusCode();
if ($code == 200) {
$transaction->commission_banque = $commissionBanque = $frais * $config->taux_com_banque_retrait_carte_cash_ilink / 100 ;
//Emettre une trame SSL pour recharger le compte de la banque partenaire du montant de sa commission
$code_retrait = $this->random_string();
$hash = $this->hashSSHA($code_retrait);
$transaction->encrypted_code_retrait = $hash['encrypted'];
$transaction->code_retrait_salt = $hash['salt'];
$walletUser->balance -= $transaction->montant;
$transaction->commission_hyp = $frais * $config->taux_com_hyp_retrait_carte_cash_ilink / 100 ;
$walletHyperviseur->balance_com += $transaction->commission_hyp;
$transaction->id_wallet_hyp = $walletHyperviseur->id;
$transaction->frais = $frais;
$transaction->date = new \DateTime();
$transaction->status_retrait = 0;
$walletHyperviseur->save();
$walletUser->save();
$transaction->id_transaction = $this->getTransactionID();
$transaction->save();
$message = trans('messages.successful_user_remove_from_cart_to_cash',
['id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country),
'net' => $this->toMoney($montantRetrait, $init_country), 'fees' => $this->toMoney($frais, $init_country),'code' => wordwrap($code_retrait, 4, ' ', true),
'sender_code' => $user->user_code, 'cart_number' => wordwrap($transaction->numero_carte, 4, ' ', true)]);
$this->sendMail($user->email, trans('messages.successful_transaction'), $message);
return $this->successResponse($message.trans('messages.sent_by_mail'));
} else {
return $this->errorResponse(trans('errors.visa_api_failed'), Response::HTTP_INTERNAL_SERVER_ERROR);
}
} }
} else { } else {
return $this->errorResponse(trans('messages.incorrect_user_password')); return $this->errorResponse(trans('messages.incorrect_user_password'));
} }
@ -893,8 +887,8 @@ class iLinkTransactionController extends Controller
return $this->successResponse($data); return $this->successResponse($data);
break; break;
case 11: // User - Retrait de carte vers cash case 11: // User - Retrait de carte vers cash
$frais = $request->montant * $config->taux_com_user_carte_cash/ 100; $frais = $request->montant * $config->taux_com_user_carte_cash / 100;
$data['frais'] = $frais ; $data['frais'] = $frais;
$data['montant_net_init'] = $request->montant - $frais; $data['montant_net_init'] = $request->montant - $frais;
return $this->successResponse($data); return $this->successResponse($data);
break; break;