{"id":25905,"date":"2021-06-15T13:08:00","date_gmt":"2021-06-15T10:08:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25905"},"modified":"2021-10-18T02:04:11","modified_gmt":"2021-10-17T23:04:11","slug":"acceptez-le-paiement-par-carte-de-credit-en-utilisant-la-passerelle-de-paiement-authorize-net-en-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/acceptez-le-paiement-par-carte-de-credit-en-utilisant-la-passerelle-de-paiement-authorize-net-en-php\/","title":{"rendered":"Acceptez le paiement par carte de cr\u00e9dit en utilisant la passerelle de paiement Authorize.Net en PHP"},"content":{"rendered":"<p>Vous souhaitez int\u00e9grer une option de paiement par carte bancaire sur votre site internet? Si oui, alors Authorize.Net est un bon choix pour vous. Fond\u00e9e en 1996, c&rsquo;est l&rsquo;une des passerelles de paiement les plus populaires sur Internet.<\/p>\n<p>Pour une boutique en ligne, les cartes de cr\u00e9dit sont largement utilis\u00e9es pour accepter les paiements. Les clients pr\u00e9f\u00e8rent payer par carte de cr\u00e9dit pour acheter des produits en ligne. Dans votre magasin, vous devez donner l&rsquo;option de paiement par carte de cr\u00e9dit. Dans cet article, je vous montre comment int\u00e9grer la passerelle de paiement Authorize.Net qui vous permettra de recevoir le paiement par carte bancaire.<\/p>\n<p>Chaque fois que nous ajoutons des passerelles de paiement, nous devons d&rsquo;abord tester les transactions en mode sandbox. Une fois que les paiements de test fonctionnent correctement, vous pouvez opter pour la version en direct.<\/p>\n<p>Pour commencer avec Authorize.Net, cr\u00e9ez d&rsquo;abord un <a href=\"https:\/\/developer.authorize.net\/hello_world\/sandbox\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">compte sandbox<\/a>. Lors de la cr\u00e9ation du compte, copiez l&rsquo;identifiant de connexion et la cl\u00e9 de transaction. Vous pouvez obtenir ces cl\u00e9s API \u00e0 partir de <strong>Account-&gt;API Credentials &#038; Keys<\/strong>. Veuillez vous r\u00e9f\u00e9rer \u00e0 la capture d&rsquo;\u00e9cran ci-dessous.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20201-6081cc62a61f7.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-20201-6081cc62a61f7.png\" alt=\"Acceptez le paiement par carte de cr\u00e9dit en utilisant la passerelle de paiement Authorize.Net en PHP\" ><\/a><\/p>\n<p>Sur la page suivante, vous obtiendrez votre \u00ab\u00a0ID de connexion API\u00a0\u00bb. Cr\u00e9ez une cl\u00e9 de transaction \u00e0 partir de la section \u00ab\u00a0Cr\u00e9er de nouvelles cl\u00e9s\u00a0\u00bb comme indiqu\u00e9 dans la capture d&rsquo;\u00e9cran ci-dessous.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20201-6081cc632ae89.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-20201-6081cc632ae89.png\" alt=\"Acceptez le paiement par carte de cr\u00e9dit en utilisant la passerelle de paiement Authorize.Net en PHP\" ><\/a><\/p>\n<h3>Commencer<\/h3>\n<p>Afin d&rsquo;int\u00e9grer Authorize.Net, nous utiliserons la biblioth\u00e8que <a href=\"https:\/\/github.com\/thephpleague\/omnipay\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Omnipay<\/a> qui fournit un moyen simple et propre d&rsquo;int\u00e9gration des paiements. Installez la biblioth\u00e8que Omnipay sur votre projet \u00e0 l&rsquo;aide de la commande\u00a0:<\/p>\n<pre><code>composer require league\/omnipay:^3<\/code><\/pre>\n<p>Il installera la biblioth\u00e8que Omnipay. De plus, nous devons installer le package Omnipay pour Authorize.Net. Ce package nous permet de capturer le paiement via la passerelle de paiement Authorize.Net. En savoir plus sur ce package sur leur <a href=\"https:\/\/github.com\/academe\/omnipay-authorizenetapi\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentation<\/a>. Ex\u00e9cutez la commande ci-dessous pour installer ce package\u00a0:<\/p>\n<pre><code>composer require \"academe\/omnipay-authorizenetapi: ~3.0\"<\/code><\/pre>\n<p>Nous sommes pr\u00eats avec les biblioth\u00e8ques prises en charge. Cr\u00e9ons maintenant un formulaire simple pour saisir le montant et les d\u00e9tails de la carte. Je cr\u00e9e un <code>index.php<\/code>fichier et j&rsquo;y ajoute le code HTML ci-dessous.<\/p>\n<pre><code>&lt;form action=\"charge.php\" method=\"post\"&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>Lors de l&rsquo;acceptation du paiement en ligne, nous devons stocker les d\u00e9tails de la transaction dans la base de donn\u00e9es. Ainsi, pour stocker les informations de transaction, cr\u00e9ez une table \u00ab\u00a0paiements\u00a0\u00bb dans la base de donn\u00e9es \u00e0 l&rsquo;aide de la requ\u00eate ci-dessous.<\/p>\n<pre><code>CREATE TABLE `payments` (\u00a0`id` int(11) NOT NULL AUTO_INCREMENT,\n\u00a0`transaction_id` varchar(255) NOT NULL,\n\u00a0`amount` float(10,2) NOT NULL,\n\u00a0`currency` varchar(255) NOT NULL,\n\u00a0`payment_status` varchar(255) NOT NULL,\n\u00a0`captured_at` datetime NOT NULL DEFAULT current_timestamp(),\n\u00a0PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;<\/code><\/pre>\n<h3>Acceptez le paiement par carte de cr\u00e9dit en utilisant Authorize.Net<\/h3>\n<p>Vous avez copi\u00e9 les cl\u00e9s API de votre compte Authorize.Net dans les \u00e9tapes pr\u00e9c\u00e9dentes. Il est temps d&rsquo;ajouter ces cl\u00e9s au code PHP. Stockez ces informations d&rsquo;identification dans le <code>config.php<\/code>fichier. J&rsquo;ajoute \u00e9galement la connexion \u00e0 la base de donn\u00e9es \u00e0 ce fichier.<\/p>\n<p><strong>config.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\n\/\/ Connect with the database\n$db = new mysqli('localhost', 'MYSQL_DB_USERNAME', 'MYSQL_DB_PASSWORD', 'MYSQL_DB_NAME');\n\u00a0\u00a0\nif ($db-&gt;connect_errno) {\n\u00a0\u00a0\u00a0\u00a0die(\"Connect failed: \". $db-&gt;connect_error);\n}\n\u00a0\u00a0\n$gateway = OmnipayOmnipay::create('AuthorizeNetApi_Api');\n$gateway-&gt;setAuthName('PASTE_ANET_API_LOGIN_ID');\n$gateway-&gt;setTransactionKey('PASTE_ANET_TRANSACTION_KEY');\n$gateway-&gt;setTestMode(true); \/\/comment this line when move to 'live'<\/code><\/pre>\n<p>Remplacez les espaces r\u00e9serv\u00e9s par les valeurs r\u00e9elles. Alors que nous testons les paiements sur le bac \u00e0 sable, je suis pass\u00e9 fid\u00e8le \u00e0 la m\u00e9thode <code>setTestMode<\/code>. Lorsque vous \u00eates pr\u00eat \u00e0 passer \u00e0 la production, supprimez\/commentez cette ligne.<\/p>\n<p>Dans le formulaire que nous avons cr\u00e9\u00e9 ci-dessus, j&rsquo;ai d\u00e9fini <code>charge.php<\/code>comme URL d&rsquo;action. Cela signifie que le code r\u00e9el qui capture le paiement par carte de cr\u00e9dit ira \u00e0 l&rsquo;int\u00e9rieur de ce fichier.<\/p>\n<p><strong>charge.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire_once \"config.php\";\n\u00a0\u00a0\nif (isset($_POST['submit'])) {\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0try {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$creditCard = new OmnipayCommonCreditCard([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'number' =&gt; $_POST['cc_number'],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'expiryMonth' =&gt; $_POST['expiry_month'],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'expiryYear' =&gt; $_POST['expiry_year'],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'cvv' =&gt; $_POST['cvv'],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Generate a unique merchant site transaction ID.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$transactionId = rand(100000000, 999999999);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$response = $gateway-&gt;authorize([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'amount' =&gt; $_POST['amount'],\n\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'transactionId' =&gt; $transactionId,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'card' =&gt; $creditCard,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0])-&gt;send();\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if($response-&gt;isSuccessful()) {\n\u00a0\u00a0\n\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$transactionReference = $response-&gt;getTransactionReference();\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$response = $gateway-&gt;capture([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'amount' =&gt; $_POST['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'transactionReference' =&gt; $transactionReference,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0])-&gt;send();\n\u00a0\u00a0\n\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$amount = $_POST['amount'];\n\u00a0\u00a0\n\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$isPaymentExist = $db-&gt;query(\"SELECT * FROM payments WHERE transaction_id = '\".$transaction_id.\"'\");\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if($isPaymentExist-&gt;num_rows == 0) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$insert = $db-&gt;query(\"INSERT INTO payments(transaction_id, amount, currency, payment_status) VALUES('$transaction_id', '$amount', 'USD', 'Captured')\");\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"Your payment transaction id: \". $transaction_id;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else {\n\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\u00a0echo $response-&gt;getMessage();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0} catch(Exception $e) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Vous pouvez maintenant tester un paiement. Obtenez ces <a href=\"https:\/\/developer.authorize.net\/hello_world\/testing_guide\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">num\u00e9ros de carte de cr\u00e9dit<\/a> de test pour tester le paiement. En cas de r\u00e9ponse positive, vous devriez obtenir votre identifiant de transaction.<\/p>\n<p>Le propri\u00e9taire peut voir les transactions sur le tableau de bord Authorize.Net. Vous trouverez les transactions sous la rubrique \u00ab\u00a0Transactions non r\u00e9gl\u00e9es\u00a0\u00bb. Authorize.Net r\u00e8gle ensuite la transaction de son propre chef et vous en informe par e-mail.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20201-6081cc632ae89.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-20201-6081cc632ae89.png\" alt=\"Acceptez le paiement par carte de cr\u00e9dit en utilisant la passerelle de paiement Authorize.Net en PHP\" ><\/a><\/p>\n<p>J&rsquo;esp\u00e8re que vous comprenez comment accepter les paiements par carte de cr\u00e9dit en utilisant la passerelle de paiement Authorize.Net. S&rsquo;il vous pla\u00eet partager vos pens\u00e9es ou suggestions dans la section 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-php-a-l-aide-de-l-api-rest-paypal\/\" title=\"Int\u00e9gration de la passerelle de paiement PayPal dans PHP \u00e0 l&#039;aide de l&#039;API REST PayPal\">Int\u00e9gration de la passerelle de paiement PayPal dans PHP \u00e0 l&rsquo;aide de l&rsquo;API REST PayPal<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/un-guide-pour-l-integration-de-stripe-dans-un-site-web-avec-php\/\" title=\"Un guide pour l&#039;int\u00e9gration de Stripe dans un site Web avec PHP\">Un guide pour l&rsquo;int\u00e9gration de Stripe dans un site Web avec PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/acceptez-les-paiements-par-carte-de-credit-en-utilisant-paypal-payments-pro-en-php\/\" title=\"Acceptez les paiements par carte de cr\u00e9dit en utilisant Paypal Payments Pro en PHP\">Acceptez les paiements par carte de cr\u00e9dit en utilisant Paypal Payments Pro en PHP<\/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, nous \u00e9tudions comment int\u00e9grer Authorize.net pour accepter les paiements par carte de cr\u00e9dit. L&rsquo;ajout d&rsquo;une option de paiement par carte de cr\u00e9dit est tr\u00e8s courant<\/p>\n","protected":false},"author":1,"featured_media":21609,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[273],"tags":[844],"class_list":["post-25905","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/25905","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=25905"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/25905\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/21609"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=25905"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=25905"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=25905"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}