{"id":26226,"date":"2021-06-15T12:29:00","date_gmt":"2021-06-15T09:29:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26226"},"modified":"2021-10-18T03:00:35","modified_gmt":"2021-10-18T00:00:35","slug":"accetta-pagamenti-con-carta-di-credito-utilizzando-il-gateway-di-pagamento-authorize-net-in-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/accetta-pagamenti-con-carta-di-credito-utilizzando-il-gateway-di-pagamento-authorize-net-in-php\/","title":{"rendered":"Accetta pagamenti con carta di credito utilizzando il gateway di pagamento Authorize.Net in PHP"},"content":{"rendered":"<p>Vuoi integrare un&#8217;opzione di pagamento con carta di credito sul tuo sito web? Se s\u00ec, Authorize.Net \u00e8 una buona scelta per te. Fondato nel 1996, questo \u00e8 uno dei gateway di pagamento pi\u00f9 diffusi su Internet.<\/p>\n<p>Per un negozio online, le carte di credito sono ampiamente utilizzate per accettare pagamenti. I clienti preferiscono pagare tramite carte di credito per acquistare prodotti online. Nel tuo negozio, devi dare l&#8217;opzione per il pagamento con carta di credito. In questo articolo ti mostro come integrare il gateway di pagamento Authorize.Net che ti permetter\u00e0 di ricevere il pagamento con carta di credito.<\/p>\n<p>Ogni volta che aggiungiamo gateway di pagamento, dobbiamo prima testare le transazioni in modalit\u00e0 sandbox. Una volta che i pagamenti di prova funzionano correttamente, puoi passare alla versione live.<\/p>\n<p>Per iniziare con Authorize.Net, crea prima un <a href=\"https:\/\/developer.authorize.net\/hello_world\/sandbox\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">account sandbox<\/a>. Al momento della creazione dell&#8217;account, copia l&#8217;ID di accesso e la chiave della transazione. Puoi ottenere queste chiavi API da <strong>Account-&gt;Credenziali e chiavi API<\/strong>. Si prega di fare riferimento allo screenshot qui sotto.<\/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=\"Accetta pagamenti con carta di credito utilizzando il gateway di pagamento Authorize.Net in PHP\" ><\/a><\/p>\n<p>Nella pagina successiva, otterrai il tuo &quot;ID di accesso API&quot;. Crea una chiave di transazione dalla sezione &quot;Crea nuova chiave\/e&quot; come mostrato nello screenshot qui sotto.<\/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=\"Accetta pagamenti con carta di credito utilizzando il gateway di pagamento Authorize.Net in PHP\" ><\/a><\/p>\n<h3>Iniziare<\/h3>\n<p>Per integrare Authorize.Net, utilizzeremo la libreria <a href=\"https:\/\/github.com\/thephpleague\/omnipay\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Omnipay<\/a> che fornisce un modo semplice e pulito per l&#8217;integrazione dei pagamenti. Installa la libreria Omnipay nel tuo progetto utilizzando il comando:<\/p>\n<pre><code>composer require league\/omnipay:^3<\/code><\/pre>\n<p>Installer\u00e0 la libreria Omnipay. Inoltre, ci viene richiesto di installare il pacchetto Omnipay per Authorize.Net. Questo pacchetto ci consente di acquisire il pagamento tramite il gateway di pagamento Authorize.Net. Maggiori informazioni su questo pacchetto nella loro <a href=\"https:\/\/github.com\/academe\/omnipay-authorizenetapi\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentazione<\/a>. Esegui il comando seguente per installare questo pacchetto:<\/p>\n<pre><code>composer require \"academe\/omnipay-authorizenetapi: ~3.0\"<\/code><\/pre>\n<p>Siamo pronti con le librerie supportate. Ora creiamo un semplice modulo per inserire l&#8217;importo e i dettagli della carta. Sto creando un <code>index.php<\/code>file e aggiungo il codice HTML sottostante.<\/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>Quando accettiamo il pagamento online, dobbiamo memorizzare i dettagli della transazione nel database. Quindi, per memorizzare le informazioni sulla transazione, creare una tabella &quot;pagamenti&quot; nel database utilizzando la query seguente.<\/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>Accetta il pagamento con carta di credito utilizzando Authorize.Net<\/h3>\n<p>Hai copiato le chiavi API del tuo account Authorize.Net nei passaggi precedenti. \u00c8 ora di aggiungere queste chiavi al codice PHP. Memorizza queste credenziali nel <code>config.php<\/code>file. Sto anche aggiungendo la connessione al database a questo file.<\/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>Sostituisci i segnaposto con i valori effettivi. Mentre stiamo testando i pagamenti sulla sandbox, sono passato fedele al metodo <code>setTestMode<\/code>. Quando sei pronto per passare alla produzione, rimuovi\/commenta questa riga.<\/p>\n<p>Nel modulo che abbiamo creato sopra, ho impostato <code>charge.php<\/code>come URL dell&#8217;azione. Significa che il codice effettivo che cattura il pagamento con carta di credito andr\u00e0 all&#8217;interno di questo file.<\/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>Ora puoi andare avanti e testare un pagamento. Ottieni questi <a href=\"https:\/\/developer.authorize.net\/hello_world\/testing_guide\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">numeri di carta di credito<\/a> di prova per testare il pagamento. Se la risposta \u00e8 andata a buon fine, dovresti ottenere il tuo ID transazione.<\/p>\n<p>Il proprietario pu\u00f2 vedere le transazioni sulla dashboard di Authorize.Net. Troverai le transazioni alla voce &#8216;Transazioni non regolate&#8217;. Authorize.Net successivamente regola la transazione da solo e ti avvisa via e-mail.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20201-6081cc632ae89.png\"><\/a><\/p>\n<p>Spero che tu capisca come accettare pagamenti con carta di credito utilizzando il gateway di pagamento Authorize.Net. Si prega di condividere i tuoi pensieri o suggerimenti nella sezione commenti qui sotto.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/integrazione-del-gateway-di-pagamento-paypal-in-php-utilizzando-l-api-rest-di-paypal\/\" title=\"Integrazione del gateway di pagamento PayPal in PHP utilizzando l&#039;API REST di PayPal\">Integrazione del gateway di pagamento PayPal in PHP utilizzando l&#8217;API REST di PayPal<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/una-guida-per-l-integrazione-di-stripe-nel-sito-web-con-php\/\" title=\"Una guida per l&#039;integrazione di Stripe nel sito Web con PHP\">Una guida per l&#8217;integrazione di Stripe nel sito Web con PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/accetta-pagamenti-con-carta-di-credito-utilizzando-paypal-payments-pro-in-php\/\" title=\"Accetta pagamenti con carta di credito utilizzando Paypal Payments Pro in PHP\">Accetta pagamenti con carta di credito utilizzando Paypal Payments Pro in PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questo articolo studiamo come integrare Authorize.net per accettare pagamenti con carta di credito. L&#8217;aggiunta dell&#8217;opzione di pagamento con carta di credito \u00e8 molto comune<\/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":[276],"tags":[846],"class_list":["post-26226","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-7","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/26226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=26226"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/26226\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/21609"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=26226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=26226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=26226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}