{"id":24446,"date":"2021-05-18T11:04:00","date_gmt":"2021-05-18T08:04:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24446"},"modified":"2021-10-18T02:15:48","modified_gmt":"2021-10-17T23:15:48","slug":"integration-de-la-passerelle-de-paiement-authorize-net-dans-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/integration-de-la-passerelle-de-paiement-authorize-net-dans-laravel\/","title":{"rendered":"Int\u00e9gration de la passerelle de paiement Authorize.Net dans Laravel"},"content":{"rendered":"<p><a href=\"https:\/\/www.authorize.net\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Authorize.Net<\/a> est sans aucun doute l&rsquo;une des solutions de paiement fiables et populaires sur Internet. Si vous exploitez une boutique en ligne et souhaitez recevoir des paiements par carte de cr\u00e9dit\/d\u00e9bit, alors Authorize.Net serait votre choix. Dans cet article, je vous montre comment int\u00e9grer la passerelle de paiement Authorize.Net dans votre application Laravel.<\/p>\n<p>Pour commencer, vous devez avoir un compte sur <a href=\"https:\/\/www.authorize.net\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Authorize.Net<\/a>. Vous devez d&rsquo;abord tester vos paiements en mode sandbox et si tout fonctionne comme pr\u00e9vu, passez en mode live. Afin d&rsquo;accepter le paiement en utilisant Authorize.Net, vous devez saisir vos informations d&rsquo;identification API. Connectez-vous \u00e0 votre <a href=\"https:\/\/developer.authorize.net\/hello_world\/sandbox\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">compte sandbox<\/a> et vous pouvez obtenir ces cl\u00e9s API \u00e0 partir de <strong>Account-&gt;API Credentials &#038; Keys<\/strong>.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20566-608205b6e3c01.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20566-608205b6e3c01.png\" alt=\"Int\u00e9gration de la passerelle de paiement Authorize.Net dans Laravel\" ><\/a><\/p>\n<p>Sur la page suivante, vous obtiendrez votre \u00ab\u00a0ID de connexion API\u00a0\u00bb et cr\u00e9erez une nouvelle cl\u00e9 de transaction \u00e0 partir de la section \u00ab\u00a0Cr\u00e9er de nouvelles cl\u00e9s\u00a0\u00bb.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20566-608205b73dc1a.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20566-608205b73dc1a.png\" alt=\"Int\u00e9gration de la passerelle de paiement Authorize.Net dans Laravel\" ><\/a><\/p>\n<h3>Configuration de base dans Laravel pour accepter le paiement en utilisant Authorize.Net<\/h3>\n<p>Lorsque vos clients ach\u00e8tent des produits, vous devez stocker leurs informations de paiement dans la base de donn\u00e9es. Cela \u00e9tant dit, cr\u00e9ons une table &lsquo;paiements&rsquo; pour stocker les d\u00e9tails de la transaction.<\/p>\n<pre><code>php artisan make:migration create_payments_table<\/code><\/pre>\n<p>Dans le fichier de migration g\u00e9n\u00e9r\u00e9, ajoutez le code ci-dessous \u00e0 la m\u00e9thode up.<\/p>\n<pre><code>&lt;?php\n...\n...\npublic function up()\n{\n\u00a0\u00a0\u00a0\u00a0Schema::create('payments', function (Blueprint $table) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;bigIncrements('id');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('transaction_id');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('payer_email');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;float('amount', 10, 2);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('currency');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('payment_status');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;timestamps();\n\u00a0\u00a0\u00a0\u00a0});\n}<\/code><\/pre>\n<p>Ensuite, ex\u00e9cutez la commande migrate qui ajoutera cette table \u00e0 votre base de donn\u00e9es.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>Pour interagir avec le tableau &lsquo;paiements&rsquo; vous aurez besoin d&rsquo;un mod\u00e8le &lsquo;Paiement&rsquo;. Cr\u00e9ez-le \u00e0 l&rsquo;aide de la commande\u00a0:<\/p>\n<pre><code>php artisan make:model Payment<\/code><\/pre>\n<p>Vous avez copi\u00e9 les informations d&rsquo;identification de l&rsquo;API Authorize.Net. Mettons-le dans votre <code>.env<\/code>dossier comme suit.<\/p>\n<pre><code>ANET_API_LOGIN_ID=PASTE_HERE_API_LOGIN_ID\nANET_TRANSACTION_KEY=PASTE_HERE_TRANSACTION_KEY<\/code><\/pre>\n<p>Assurez-vous de remplacer les espaces r\u00e9serv\u00e9s par les valeurs r\u00e9elles. Apr\u00e8s cela, effacez votre cache de configuration.<\/p>\n<pre><code>php artisan config:clear<\/code><\/pre>\n<p>Lors du traitement du paiement, dans Laravel, vous devez d\u00e9finir des itin\u00e9raires. D\u00e9finissons donc des itin\u00e9raires pour cela.<\/p>\n<p><strong>itin\u00e9raires\/web.php<\/strong><\/p>\n<pre><code>&lt;?php\n...\n...\nRoute::get('payment', 'PaymentController@index');\nRoute::post('charge', 'PaymentController@charge');<\/code><\/pre>\n<h3>Int\u00e9gration de la passerelle de paiement Authorize.Net dans Laravel<\/h3>\n<p>Fini le temps o\u00f9 les d\u00e9veloppeurs devaient lire la documentation API des fournisseurs de passerelles de paiement pour int\u00e9grer leurs services. <a href=\"https:\/\/github.com\/thephpleague\/omnipay\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Omnipay<\/a> est une biblioth\u00e8que de traitement des paiements pour PHP et ils font tout leur travail pour faciliter la vie de nos d\u00e9veloppeurs. Ils prennent en charge les services de passerelle de paiement multiple. Nous allons \u00e9galement utiliser Omnipay pour l&rsquo;int\u00e9gration d&rsquo;Authorize.Net dans Laravel. Avec Omnipay, nous utilisons \u00e9galement leur autre biblioth\u00e8que pour la mise en \u0153uvre de l&rsquo;API Authorize.Net.<\/p>\n<p>Cela dit, installez ces 2 biblioth\u00e8ques \u00e0 l&rsquo;aide de la commande Composer\u00a0:<\/p>\n<pre><code>composer require league\/omnipay:^3 \"academe\/omnipay-authorizenetapi: ~3.0\"<\/code><\/pre>\n<p>Maintenant, cr\u00e9ez un contr\u00f4leur qui appellera le fichier de vue, traitera le paiement et stockera les d\u00e9tails de la transaction dans la base de donn\u00e9es.<\/p>\n<pre><code>php artisan make:controller PaymentController<\/code><\/pre>\n<p>\u00c0 ce contr\u00f4leur, ajoutez le code ci-dessous tel qu&rsquo;il est qui g\u00e9rera tous les \u00e9l\u00e9ments li\u00e9s au paiement.<\/p>\n<p><strong>PaiementController.php<\/strong><\/p>\n<pre><code>&lt;?php\nnamespace AppHttpControllers;\n\u00a0\u00a0\nuse IlluminateHttpRequest;\nuse OmnipayOmnipay;\nuse AppPayment;\n\u00a0\nclass PaymentController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0public $gateway;\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0public function __construct()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;gateway = Omnipay::create('AuthorizeNetApi_Api');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;gateway-&gt;setAuthName(env('ANET_API_LOGIN_ID'));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;gateway-&gt;setTransactionKey(env('ANET_TRANSACTION_KEY'));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;gateway-&gt;setTestMode(true); \/\/comment this line when move to 'live'\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0public function index()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return view('payment');\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0public function charge(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0try {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$creditCard = new OmnipayCommonCreditCard([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'number' =&gt; $request-&gt;input('cc_number'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'expiryMonth' =&gt; $request-&gt;input('expiry_month'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'expiryYear' =&gt; $request-&gt;input('expiry_year'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'cvv' =&gt; $request-&gt;input('cvv'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Generate a unique merchant site transaction ID.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$transactionId = rand(100000000, 999999999);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$response = $this-&gt;gateway-&gt;authorize([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'amount' =&gt; $request-&gt;input('amount'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'currency' =&gt; 'USD',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'transactionId' =&gt; $transactionId,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'card' =&gt; $creditCard,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0])-&gt;send();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if($response-&gt;isSuccessful()) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Captured from the authorization response.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$transactionReference = $response-&gt;getTransactionReference();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$response = $this-&gt;gateway-&gt;capture([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'amount' =&gt; $request-&gt;input('amount'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'currency' =&gt; 'USD',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'transactionReference' =&gt; $transactionReference,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0])-&gt;send();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$transaction_id = $response-&gt;getTransactionReference();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$amount = $request-&gt;input('amount');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Insert transaction data into the database\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$isPaymentExist = Payment::where('transaction_id', $transaction_id)-&gt;first();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(!$isPaymentExist)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment = new Payment;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;transaction_id = $transaction_id;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;payer_email = $request-&gt;input('email');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;amount = $request-&gt;input('amount');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;currency = 'USD';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;payment_status = 'Captured';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$payment-&gt;save();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return \"Payment is successful. Your transaction id is: \". $transaction_id;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ not successful\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return $response-&gt;getMessage();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} catch(Exception $e) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return $e-&gt;getMessage();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Ce contr\u00f4leur r\u00e9cup\u00e8re le montant, les d\u00e9tails de la carte \u00e0 partir du formulaire HTML et traite le paiement. En cas de paiement r\u00e9ussi, il stocke tous les d\u00e9tails de la transaction dans le tableau \u00ab\u00a0paiements\u00a0\u00bb.<\/p>\n<p>Enfin, cr\u00e9ez une vue <code>payment.blade.php<\/code>et elle contiendra le code suivant.<\/p>\n<p><strong>paiement.lame.php<\/strong><\/p>\n<pre><code>&lt;form action=\"{{ url('charge') }}\" method=\"post\"&gt;\n\u00a0\u00a0\u00a0\u00a0{{ csrf_field() }}\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"email\" name=\"email\" placeholder=\"Enter Email\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"amount\" placeholder=\"Enter Amount\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"cc_number\" placeholder=\"Card Number\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"expiry_month\" placeholder=\"Month\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"expiry_year\" placeholder=\"Year\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"cvv\" placeholder=\"CVV\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\" \/&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Lorsque vous soumettez ce formulaire, le contr\u00f4le passe \u00e0 la <code>charge<\/code>fonction dans le <code>PaymentController<\/code>et le contr\u00f4leur effectue le reste du processus de paiement. <a href=\"https:\/\/developer.authorize.net\/hello_world\/testing_guide.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Cliquez ici<\/a> pour obtenir des num\u00e9ros de carte de cr\u00e9dit factices afin de tester le paiement sandbox. L&rsquo;utilisateur peut \u00e9galement voir sa transaction sur le tableau de bord Authorize.Net. Au d\u00e9but, les transactions \u00e9taient r\u00e9pertori\u00e9es comme \u00ab\u00a0Transactions non r\u00e9gl\u00e9es\u00a0\u00bb. Authorize.Net r\u00e8gle plus tard la transaction par lui-m\u00eame.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20566-608205b73dc1a.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20566-608205b73dc1a.png\" alt=\"Int\u00e9gration de la passerelle de paiement Authorize.Net dans Laravel\" ><\/a><\/p>\n<h3>Effectuer le paiement en direct<\/h3>\n<p>Une fois que vous avez test\u00e9 avec succ\u00e8s vos paiements en mode sandbox, vous pouvez passer en mode production. Tout ce que vous avez \u00e0 faire est de remplacer les informations d&rsquo;identification du bac \u00e0 sable par les d\u00e9tails de production dans le <code>.env<\/code>fichier. Commentez \u00e9galement la ligne ci-dessous de la <code>__construct<\/code>m\u00e9thode de <code>PaymentController<\/code>.<\/p>\n<pre><code>$this-&gt;gateway-&gt;setTestMode(true); \/\/comment this line when move to 'live'<\/code><\/pre>\n<p>C&rsquo;est tout! J&rsquo;esp\u00e8re que vous comprenez l&rsquo;int\u00e9gration de la passerelle de paiement Authorize.Net dans Laravel. J&rsquo;aimerais entendre vos pens\u00e9es ou suggestions dans la section des commentaires ci-dessous.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/integration-de-la-passerelle-de-paiement-paypal-dans-laravel\/\" title=\"Int\u00e9gration de la passerelle de paiement PayPal dans Laravel\">Int\u00e9gration de la passerelle de paiement PayPal dans Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/integration-de-la-passerelle-de-paiement-stripe-dans-laravel\/\" title=\"Int\u00e9gration de la passerelle de paiement Stripe dans Laravel\">Int\u00e9gration de la passerelle de paiement Stripe dans Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans cet article, je vous montre comment int\u00e9grer la passerelle de paiement Authorize.Net dans Laravel. En utilisant cette passerelle, vous pouvez accepter le paiement par carte de cr\u00e9dit\/d\u00e9bit sur<\/p>\n","protected":false},"author":1,"featured_media":20567,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[497],"tags":[844],"class_list":["post-24446","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=24446"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24446\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/20567"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}