diff --git a/app/Http/Controllers/HelperController.php b/app/Http/Controllers/HelperController.php index 7a93dcf..9e94ba4 100755 --- a/app/Http/Controllers/HelperController.php +++ b/app/Http/Controllers/HelperController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\Country; use App\Traits\ApiResponser; use Illuminate\Support\Facades\DB; @@ -20,9 +21,20 @@ class HelperController extends Controller public function countries() { - $countries = DB::select('SELECT id , name , currency_code FROM countries_currencies WHERE id IN ( - SELECT distinct c.id FROM networks n INNER JOIN countries_currencies c ON n.country_id=c.id INNER JOIN configWallet cw ON cw.id_network = n.id WHERE status = 1 - )'); + $countries = DB::select('SELECT id , name , code_dial FROM countries WHERE id IN ( + SELECT distinct n.country_id FROM networks n WHERE n.status = 1 + )'); return $this->successResponse($countries); } + + public function paying_networks($id_country) + { + $networks = DB::select('SELECT id , name FROM networks WHERE id IN ( SELECT distinct id_network FROM paying_networks ) + AND status = 1 AND country_id = :id;',['id'=>$id_country]); + return $this->successResponse($networks); + } + + public function country($code_dial){ + return $this->successResponse(Country::where('code_dial',$code_dial)->firstOrFail()); + } } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index bc48811..a170f4a 100755 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -59,15 +59,11 @@ class UserController extends Controller } // dd($request->all()); $this->validate($request, [ - 'id_network' => 'required|integer|min:0|not_in:0', - 'id_country' => 'required|integer|min:0|not_in:0', 'document_image_front' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:6048', 'document_image_back' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:6048', 'user_image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:6048', ]); - $identification->idNetwork = $request->id_network; - $identification->country_id = $request->id_country; $identification->document_image_front = $this->uploadImage($request,'document_image_front','D-F',"documents"); $identification->document_image_back = $this->uploadImage($request,'document_image_back','D-B',"documents"); $identification->user_image = $this->uploadImage($request,'user_image','U',"photos"); diff --git a/app/Http/Controllers/iLinkTransactionController.php b/app/Http/Controllers/iLinkTransactionController.php index 06796d2..6232c34 100755 --- a/app/Http/Controllers/iLinkTransactionController.php +++ b/app/Http/Controllers/iLinkTransactionController.php @@ -6,6 +6,7 @@ use App\Models\AgentPlus; use App\Models\CodeGenerer; use App\Models\ConfigWallet; use App\Models\NetworksAgent; +use App\Models\PayingNetwork; use App\Models\TypeIlinkTransaction; use App\Models\PaliersConfigWallet; use App\Models\User; @@ -41,26 +42,37 @@ class iLinkTransactionController extends Controller $transaction = new WalletIlinkTransaction(); $this->validate($request, [ 'type' => 'required|integer|min:0|not_in:0', - 'id_wallet_agent' => 'integer|min:0|not_in:0', - 'id_wallet_user' => 'integer|min:0|not_in:0', - 'password' => 'required' + 'id_wallet_agent' => 'required_without:id_wallet_user|integer|min:0|not_in:0', + 'id_wallet_user' => 'required_without:id_wallet_agent|integer|min:0|not_in:0', + 'id_network' => 'required_with:id_wallet_user|integer|min:0|not_in:0', + 'password' => 'required', + 'montant' => 'required|numeric|min:0|not_in:0', ]); $type = TypeIlinkTransaction::findOrFail($request->type); - $walletAgent = Wallet::findOrFail($request->get('id_wallet_agent')); - $network_agent = NetworksAgent::findOrFail($walletAgent->id_networkAgent); - // Configuratrion du wallet - $config = ConfigWallet::where('id_network', $network_agent->network_id)->firstOrFail(); + if (isset($request->id_wallet_agent)) { + $walletAgent = Wallet::findOrFail($request->get('id_wallet_agent')); + $network_agent = NetworksAgent::findOrFail($walletAgent->id_networkAgent); + // Configuratrion du wallet + $config = ConfigWallet::where('id_network', $network_agent->network_id)->firstOrFail(); - // Recuperation des wallets hyperviseur et superviseur - $codeGenerer = CodeGenerer::findOrFail($network_agent->codeGenerer_id); - $superviseur = AgentPlus::where('code_membre', $codeGenerer->code_parrain)->firstOrFail(); - $hyperviseur = AgentPlus::where('code_membre', $superviseur->code_parrain)->firstOrFail(); + // Recuperation des wallets hyperviseur et superviseur + $codeGenerer = CodeGenerer::findOrFail($network_agent->codeGenerer_id); + $superviseur = AgentPlus::where('code_membre', $codeGenerer->code_parrain)->firstOrFail(); + $hyperviseur = AgentPlus::where('code_membre', $superviseur->code_parrain)->firstOrFail(); + + $wallet_agent_sup = WalletAgent::where('agent_id', $superviseur->id)->firstOrFail(); + $wallet_agent_hyp = WalletAgent::where('agent_id', $hyperviseur->id)->firstOrFail(); + $walletSuperviseur = Wallet::findOrFail($wallet_agent_sup->wallet_id); + $walletHyperviseur = Wallet::findOrFail($wallet_agent_hyp->wallet_id); + } elseif (isset($request->id_wallet_user)) { + $config = ConfigWallet::where('id_network', $request->id_network)->firstOrFail(); + + $hyperviseur = AgentPlus::where('category', 'hyper')->where('network_id', $request->id_network)->firstOrFail(); + $wallet_agent_hyp = WalletAgent::where('agent_id', $hyperviseur->id)->firstOrFail(); + $walletHyperviseur = Wallet::findOrFail($wallet_agent_hyp->wallet_id); + } - $wallet_agent_sup = WalletAgent::where('agent_id', $superviseur->id)->firstOrFail(); - $wallet_agent_hyp = WalletAgent::where('agent_id', $hyperviseur->id)->firstOrFail(); - $walletSuperviseur = Wallet::findOrFail($wallet_agent_sup->wallet_id); - $walletHyperviseur = Wallet::findOrFail($wallet_agent_hyp->wallet_id); $taxesNationales = array_values(array_filter($config->taxes->all(), function ($tax) { return $tax->destination == 'national'; @@ -97,7 +109,39 @@ class iLinkTransactionController extends Controller switch ($type->id) { case 1: //User - Envoi wallet à wallet - + $this->validate($request, $transaction->send_wallet_wallet_rules()); + $walletUser = WalletsUser::findOrFail($request->id_wallet_user); + $user = User::findOrFail($walletUser->idUser); + if ($this->checkPassword($request->password, $user->encrypted_password, $user->salt)) { + $transaction->frais = $frais = ($request->init_country != $request->final_country) ? $this->calculateFees($plr_user_wallet_wallet, $request->montant) : $this->calculateFees($plr_user_wallet_wallet_national, $request->montant); + $transaction->taxe = $taxe = ($request->init_country != $request->final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais); + $transaction->montant_depot = $montantDepot = $transaction->montant - $frais - $taxe; + $reseauPayeur = PayingNetwork::where('id_network',$request->network_destinataire)->where('id_configWallet',$config->id)->first(); + if($reseauPayeur){ //Si le reseau existe chez iLink + $transaction->part_reseau_payeur = $frais* $reseauPayeur->taux_partage / 100; + $transaction->part_reseau_emetteur = $frais - $transaction->part_reseau_payeur; + $walletHyperviseur->balance_com += $transaction->part_reseau_emetteur; + $reseauPayeur->balance_com += $transaction->part_reseau_payeur; + $reseauPayeur->save(); + }else{ + // Emettre requete SSL vers le reseau correspondant + } + $destinatire = User::where('user_code', $request->id_destinataire)->first(); + if($destinatire){ // Si c'est un wallet ilink + $walletDestinataire = WalletsUser::where('idUser',$destinatire->id)->firstOrFail(); + $walletDestinataire->balance += $montantDepot; + $walletDestinataire->save(); + }else{ + //Emettre requete SSL vers wallet correspondant + } + $walletUser->balance -= $transaction->montant; + $walletHyperviseur->save(); + $walletUser->save(); + $transaction->save(); + return $this->successResponse(trans('messages.successful_transaction')); + } else { + return $this->errorResponse(trans('messages.incorrect_user_password')); + } break; case 2: //User - Envoi de wallet à carte @@ -131,37 +175,97 @@ class iLinkTransactionController extends Controller $agent = AgentPlus::findOrFail($network_agent->agent_id); if ($this->checkPassword($request->password, $agent->encrypted_password, $agent->salt)) { $transaction = WalletIlinkTransaction::find($request->id_transaction); - if($transaction){ - if($transaction->status_retrait == 0){ - if($this->checkPassword($request->code_retrait, $transaction->encrypted_code_retrait, $transaction->code_retrait_salt)){ - $part_ag = floatval($transaction->frais * $config->taux_com_ag_retrait_cash/ 100) ; - $part_sup = floatval($transaction->frais * $config->taux_com_sup_retrait_cash/ 100); - $walletAgent->balance_princ -= $transaction->montant_retrait; - $walletAgent->balance_com += $part_ag; - $walletSuperviseur->balance_com += $part_sup ; - $walletHyperviseur->balance_com -= ($part_ag + $part_sup); - $transaction->status_retrait = 1; - $transaction->date_retrait = new \DateTime(); - $walletAgent->save(); - $walletSuperviseur->save(); - $walletHyperviseur->save(); - $transaction->save(); - return $this->successResponse(trans('messages.successful_transaction')); - }else{ + if ($transaction) { + if ($transaction->status_retrait == 0) { + if ($this->checkPassword($request->code_retrait, $transaction->encrypted_code_retrait, $transaction->code_retrait_salt)) { + if ($transaction->montant_retrait == $request->montant) { + $part_ag = floatval($transaction->frais * $config->taux_com_ag_retrait_cash / 100); + $part_sup = floatval($transaction->frais * $config->taux_com_sup_retrait_cash / 100); + $walletAgent->balance_princ += $transaction->montant_retrait; + $walletAgent->balance_com += $part_ag; + $walletSuperviseur->balance_com += $part_sup; + $walletHyperviseur->balance_com -= ($part_ag + $part_sup); + $transaction->status_retrait = 1; + $transaction->date_retrait = new \DateTime(); + $walletAgent->save(); + $walletSuperviseur->save(); + $walletHyperviseur->save(); + $transaction->save(); + return $this->successResponse(trans('messages.successful_transaction')); + } else { + return $this->errorResponse('Montant de retrait incorrect'); + } + } else { return $this->errorResponse('Code de retrait invalide'); } - }else{ + } else { return $this->errorResponse('Retrait déjà éffectuée'); } - }else{ - return $this->errorResponse('Cette transaction n\'existe pas',Response::HTTP_NOT_FOUND); + } else { + return $this->errorResponse('Cette transaction n\'existe pas', Response::HTTP_NOT_FOUND); } - }else{ + } else { return $this->errorResponse(trans('messages.incorrect_user_password')); } break; case 13: // Agent - Retrait de la carte vers cash + $this->validate($request, $transaction->card_rules()); + $agent = AgentPlus::findOrFail($network_agent->agent_id); + if ($this->checkPassword($request->password, $agent->encrypted_password, $agent->salt)) { + $expiration_date = \DateTime::createFromFormat('m/y', $request->expiration_date); + if (!$expiration_date) + $expiration_date = new \DateTime(); + $transaction->expiration_date = $expiration_date; + $frais = floatval($request->montant * $config->taux_com_wallet_ag_carte_cash / 100); + $montantRetrait = $transaction->montant + $frais; + $transaction->montant_retrait = $montantRetrait; + $body['amount'] = $montantRetrait; + $body['card_number'] = $request->numero_carte; + $body['cvv'] = $request->cvv; + $body['expiry_date'] = $expiration_date->format('Y-m'); + +// $response = $client->post('fund-transfer-api/v1/transaction/pull', ['json' => $body]); + $code = 200; // $response->getStatusCode(); + + if ($code == 200) { + $banqueCommission = floatval($frais * $config->taux_com_banque_retrait_carte_cash / 100); + $transaction->commission_banque = $banqueCommission; + // 2---> Emmètre via API sécurisé SSL une requête de débit de notre + //compte marchand du (Part de la banque partenaire en % + //pour le dépôtqui s’applique sur les frais minimum) et créditer + //le compte des opérations défini avec notre banque + //partenaire + + $walletAgent->balance_princ += $transaction->montant; + + $agentCommission = floatval($frais * $config->taux_com_ag_retrait_carte_cash / 100); + $superviseurCommission = floatval($frais * $config->taux_com_sup_retrait_carte_cash / 100); + $hyperviseurCommission = floatval($frais * $$config->taux_com_hyp_retrait_carte_cash / 100); + + $walletAgent->balance_com += $agentCommission; + $transaction->commission_ag = $agentCommission; + $walletSuperviseur->balance_com += $superviseurCommission; + $transaction->commission_sup = $superviseurCommission; + $walletHyperviseur->balance_com += $hyperviseurCommission; + $transaction->commission_hyp = $hyperviseurCommission; + $transaction->id_wallet_ag = $walletAgent->id; + $transaction->id_wallet_sup = $walletSuperviseur->id; + $transaction->id_wallet_hyp = $walletHyperviseur->id; + $transaction->frais = $frais; + $transaction->date = new \DateTime(); + $walletAgent->save(); + $walletSuperviseur->save(); + $walletHyperviseur->save(); + $transaction->save(); + return $this->successResponse(trans('messages.successful_transaction')); + + } else { + return $this->errorResponse(trans('errors.visa_api_failed'), Response::HTTP_INTERNAL_SERVER_ERROR); + } + } else { + return $this->errorResponse(trans('messages.incorrect_user_password')); + } break; case 14: // Agent - Envoi de cash vers wallet iLink $this->validate($request, $transaction->cash_wallet_rules()); @@ -198,8 +302,8 @@ class iLinkTransactionController extends Controller $transaction->id_wallet_hyp = $walletHyperviseur->id; $transaction->save(); $this->sendMail($user->email, trans('messages.successful_transaction'), trans('messages.successful_deposit_ilink', - ['id_transaction' => $transaction->id, 'amount' => $this->toMoney($transaction->montant,$request->init_country), 'net_init' =>$this->toMoney($montantDepot,$request->init_country) , - 'net_final' =>$this->convertMoney($montantDepot,$request->init_country,$request->final_country) ,'fees' => $this->toMoney($frais,$request->init_country) ,'tax' => $this->toMoney($taxe,$request->init_country), + ['id_transaction' => $transaction->id, 'amount' => $this->toMoney($transaction->montant, $request->init_country), 'net_init' => $this->toMoney($montantDepot, $request->init_country), + 'net_final' => $this->convertMoney($montantDepot, $request->init_country, $request->final_country), 'fees' => $this->toMoney($frais, $request->init_country), 'tax' => $this->toMoney($taxe, $request->init_country), 'user_code' => $request->user_code])); return $this->successResponse(trans('messages.successful_transaction')); } else { @@ -243,7 +347,7 @@ class iLinkTransactionController extends Controller } break; case 16: // Agent - Envoi de cash vers une carte visa - $this->validate($request, $transaction->cash_cash_rules()); + $this->validate($request, $transaction->card_rules()); $agent = AgentPlus::findOrFail($network_agent->agent_id); if ($this->checkPassword($request->password, $agent->encrypted_password, $agent->salt)) { $expiration_date = \DateTime::createFromFormat('m/y', $request->expiration_date); @@ -341,9 +445,9 @@ class iLinkTransactionController extends Controller $transaction->save(); $this->sendMail($request->email_emetteur, trans('messages.successful_transaction'), trans('messages.successful_send_cash', ['sender_name' => $request->prenom_emetteur . ' ' . $request->nom_emetteur, 'receiver_name' => $request->prenom_destinataire . ' ' . $request->prenom_destinataire, - 'id_transaction' => $transaction->id, 'amount' => $this->toMoney($transaction->montant,$request->init_country), 'net_init' =>$this->toMoney($montantRetrait,$request->init_country) , - 'net_final' =>$this->convertMoney($montantRetrait,$request->init_country,$request->final_country) ,'fees' => $this->toMoney($frais,$request->init_country) ,'tax' => $this->toMoney($taxe,$request->init_country), - 'code' => wordwrap($code_retrait , 4 , ' ' , true )])); + 'id_transaction' => $transaction->id, 'amount' => $this->toMoney($transaction->montant, $request->init_country), 'net_init' => $this->toMoney($montantRetrait, $request->init_country), + 'net_final' => $this->convertMoney($montantRetrait, $request->init_country, $request->final_country), 'fees' => $this->toMoney($frais, $request->init_country), 'tax' => $this->toMoney($taxe, $request->init_country), + 'code' => wordwrap($code_retrait, 4, ' ', true)])); return $this->successResponse(trans('messages.successful_transaction')); } else { return $this->errorResponse(trans('messages.incorrect_user_password')); diff --git a/app/Models/PayingNetwork.php b/app/Models/PayingNetwork.php new file mode 100644 index 0000000..345ea50 --- /dev/null +++ b/app/Models/PayingNetwork.php @@ -0,0 +1,53 @@ + 'int', + 'taux_partage' => 'float', + 'balance_com' => 'float', + 'id_configWallet' => 'int' + ]; + + protected $fillable = [ + 'id_network', + 'taux_partage', + 'balance_com', + 'id_configWallet' + ]; + + public function network() + { + return $this->belongsTo(Network::class, 'id_network'); + } + + public function config_wallet() + { + return $this->belongsTo(ConfigWallet::class, 'id_configWallet'); + } +} diff --git a/app/Models/WalletIlinkTransaction.php b/app/Models/WalletIlinkTransaction.php index dc1054c..b2e7a21 100644 --- a/app/Models/WalletIlinkTransaction.php +++ b/app/Models/WalletIlinkTransaction.php @@ -30,10 +30,13 @@ use Illuminate\Database\Eloquent\Model; * @property string $nom_emetteur * @property string $prenom_emetteur * @property string $email_emetteur + * @property int $network_emetteur * @property string $type_document_emetteur * @property string $id_document_emetteur * @property float $frais * @property float $taxe + * @property float $part_reseau_emetteur + * @property float $part_reseau_payeur * @property string $numero_carte * @property Carbon $expiration_date * @property int $init_country @@ -60,100 +63,106 @@ use Illuminate\Database\Eloquent\Model; */ class WalletIlinkTransaction extends Model { - protected $table = 'wallet_ilink_transaction'; - public $timestamps = false; + protected $table = 'wallet_ilink_transaction'; + public $timestamps = false; - protected $casts = [ - 'montant' => 'float', - 'montant_depot' => 'float', - 'montant_retrait' => 'float', - 'status_retrait' => 'int', - 'network_destinataire' => 'int', - 'frais' => 'float', - 'taxe' => 'float', - 'init_country' => 'int', - 'final_country' => 'int', - 'commission_banque' => 'float', - 'commission_ag' => 'float', - 'commission_sup' => 'float', - 'commission_hyp' => 'float', - 'id_wallet_user' => 'int', - 'id_wallet_ag' => 'int', - 'id_wallet_sup' => 'int', - 'id_wallet_hyp' => 'int', - 'canceled' => 'int', - 'type' => 'int' - ]; + protected $casts = [ + 'montant' => 'float', + 'montant_depot' => 'float', + 'montant_retrait' => 'float', + 'status_retrait' => 'int', + 'network_destinataire' => 'int', + 'network_emetteur' => 'int', + 'frais' => 'float', + 'taxe' => 'float', + 'part_reseau_emetteur' => 'float', + 'part_reseau_payeur' => 'float', + 'init_country' => 'int', + 'final_country' => 'int', + 'commission_banque' => 'float', + 'commission_ag' => 'float', + 'commission_sup' => 'float', + 'commission_hyp' => 'float', + 'id_wallet_user' => 'int', + 'id_wallet_ag' => 'int', + 'id_wallet_sup' => 'int', + 'id_wallet_hyp' => 'int', + 'canceled' => 'int', + 'type' => 'int' + ]; - protected $dates = [ - 'date_retrait', - 'expiration_date', - 'date' - ]; - - protected $fillable = [ - 'montant', - 'montant_depot', - 'montant_retrait', - 'encrypted_code_retrait', - 'code_retrait_salt', - 'status_retrait', + protected $dates = [ 'date_retrait', - 'id_destinataire', - 'type_id_destinataire', - 'network_destinataire', - 'type_document_destinataire', - 'id_document_destinataire', - 'nom_destinataire', - 'prenom_destinataire', - 'nom_emetteur', - 'prenom_emetteur', - 'email_emetteur', - 'type_document_emetteur', - 'id_document_emetteur', - 'frais', - 'taxe', - 'numero_carte', - 'expiration_date', - 'init_country', - 'final_country', - 'commission_banque', - 'commission_ag', - 'commission_sup', - 'commission_hyp', - 'id_wallet_user', - 'id_wallet_ag', - 'id_wallet_sup', - 'id_wallet_hyp', - 'canceled', - 'type', - 'date' - ]; + 'expiration_date', + 'date' + ]; - public function country() - { - return $this->belongsTo(Country::class, 'final_country'); - } + protected $fillable = [ + 'montant', + 'montant_depot', + 'montant_retrait', + 'encrypted_code_retrait', + 'code_retrait_salt', + 'status_retrait', + 'date_retrait', + 'id_destinataire', + 'type_id_destinataire', + 'network_destinataire', + 'type_document_destinataire', + 'id_document_destinataire', + 'nom_destinataire', + 'prenom_destinataire', + 'nom_emetteur', + 'prenom_emetteur', + 'email_emetteur', + 'network_emetteur', + 'type_document_emetteur', + 'id_document_emetteur', + 'frais', + 'taxe', + 'part_reseau_emetteur', + 'part_reseau_payeur', + 'numero_carte', + 'expiration_date', + 'init_country', + 'final_country', + 'commission_banque', + 'commission_ag', + 'commission_sup', + 'commission_hyp', + 'id_wallet_user', + 'id_wallet_ag', + 'id_wallet_sup', + 'id_wallet_hyp', + 'canceled', + 'type', + 'date' + ]; - public function wallet() - { - return $this->belongsTo(Wallet::class, 'id_wallet_sup'); - } + public function country() + { + return $this->belongsTo(Country::class, 'final_country'); + } - public function wallets_user() - { - return $this->belongsTo(WalletsUser::class, 'id_wallet_user'); - } + public function wallet() + { + return $this->belongsTo(Wallet::class, 'id_wallet_sup'); + } - public function type_ilink_transaction() - { - return $this->belongsTo(TypeIlinkTransaction::class, 'type'); - } + public function wallets_user() + { + return $this->belongsTo(WalletsUser::class, 'id_wallet_user'); + } - public function network() - { - return $this->belongsTo(Network::class, 'network_destinataire'); - } + public function type_ilink_transaction() + { + return $this->belongsTo(TypeIlinkTransaction::class, 'type'); + } + + public function network() + { + return $this->belongsTo(Network::class, 'network_emetteur'); + } // Regles de validation //Envoi de cash vers wallet iLink @@ -163,14 +172,12 @@ class WalletIlinkTransaction extends Model 'user_code'=>'required', 'init_country' =>'required|integer|min:0|not_in:0', 'final_country' =>'required|integer|min:0|not_in:0', - 'montant'=> 'required|numeric|min:0|not_in:0', ]; } public function card_rules() { return [ - 'montant'=> 'required|numeric|min:0|not_in:0', 'numero_carte'=>'required', 'cvv'=>'required_if:facade,front|size:3', 'expiration_date'=>'required_if:facade,front|date_format:m/y|after_or_equal:today', @@ -191,7 +198,6 @@ class WalletIlinkTransaction extends Model 'type_document_destinataire'=>'required', 'id_document_destinataire'=>'required', 'id_destinataire' => 'required', - 'montant'=> 'required|numeric|min:0|not_in:0' ]; } @@ -199,7 +205,15 @@ class WalletIlinkTransaction extends Model return [ 'id_transaction' =>'required|integer|min:0|not_in:0', 'code_retrait' =>'required|size:16', - 'montant'=> 'required|numeric|min:0|not_in:0' + ]; + } + + public function send_wallet_wallet_rules(){ + return [ + 'init_country' =>'required|integer|min:0|not_in:0', + 'final_country' =>'required|integer|min:0|not_in:0', + 'id_destinataire' =>'required|integer|min:0|not_in:0', + 'network_destinataire'=>'required|integer|min:0|not_in:0', ]; } } diff --git a/routes/web.php b/routes/web.php index 958ce5b..892ce0c 100755 --- a/routes/web.php +++ b/routes/web.php @@ -16,6 +16,8 @@ //}); // Helper routes $router->get('countries','HelperController@countries'); +$router->get('countries/{dial_code}','HelperController@country'); +$router->get('paying_networks/{id_country}','HelperController@paying_networks'); // Transactions routes $router->group(['prefix' => '/transactions'] , function () use ($router){