{"id":25838,"date":"2021-06-15T12:49:00","date_gmt":"2021-06-15T09:49:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25838"},"modified":"2021-10-18T02:29:23","modified_gmt":"2021-10-17T23:29:23","slug":"akzeptieren-sie-kreditkartenzahlungen-mit-authorize-net-payment-gateway-in-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/akzeptieren-sie-kreditkartenzahlungen-mit-authorize-net-payment-gateway-in-php\/","title":{"rendered":"Akzeptieren Sie Kreditkartenzahlungen mit Authorize.Net Payment Gateway in PHP"},"content":{"rendered":"<p>Sie m\u00f6chten eine Kreditkartenzahlungsm\u00f6glichkeit auf Ihrer Website integrieren? Wenn ja, dann ist Authorize.Net eine gute Wahl f\u00fcr Sie. 1996 gegr\u00fcndet, ist dies eines der beliebtesten Zahlungsgateways im Internet.<\/p>\n<p>F\u00fcr einen Online-Shop werden Kreditkarten h\u00e4ufig verwendet, um Zahlungen zu akzeptieren. Kunden bevorzugen es, mit Kreditkarten zu bezahlen, um Online-Produkte zu kaufen. In Ihrem Gesch\u00e4ft m\u00fcssen Sie die Option zur Kreditkartenzahlung anbieten. In diesem Artikel zeige ich Ihnen, wie Sie das Authorize.Net-Zahlungsgateway integrieren, mit dem Sie Kreditkartenzahlungen empfangen k\u00f6nnen.<\/p>\n<p>Immer wenn wir Zahlungsgateways hinzuf\u00fcgen, m\u00fcssen wir zuerst die Transaktionen im Sandbox-Modus testen. Sobald die Testzahlungen korrekt funktionieren, k\u00f6nnen Sie sich f\u00fcr die Live-Version entscheiden.<\/p>\n<p>Um mit Authorize.Net zu beginnen, erstellen Sie zun\u00e4chst ein <a href=\"https:\/\/developer.authorize.net\/hello_world\/sandbox\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sandbox-Konto<\/a>. Kopieren Sie bei der Kontoerstellung die Anmelde-ID und den Transaktionsschl\u00fcssel. Sie k\u00f6nnen diese API-Schl\u00fcssel unter <strong>Account-&gt;API Credentials &#038; Keys abrufen<\/strong>. Bitte beachten Sie den Screenshot unten.<\/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=\"Akzeptieren Sie Kreditkartenzahlungen mit Authorize.Net Payment Gateway in PHP\" ><\/a><\/p>\n<p>Auf der n\u00e4chsten Seite erhalten Sie Ihre &#8218;API Login ID&#8216;. Erstellen Sie einen Transaktionsschl\u00fcssel aus dem Abschnitt &#8218;Neue(n) Schl\u00fcssel erstellen&#8216;, wie im folgenden Screenshot gezeigt.<\/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=\"Akzeptieren Sie Kreditkartenzahlungen mit Authorize.Net Payment Gateway in PHP\" ><\/a><\/p>\n<h3>Einstieg<\/h3>\n<p>Um Authorize.Net zu integrieren, verwenden wir die <a href=\"https:\/\/github.com\/thephpleague\/omnipay\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Omnipay-<\/a> Bibliothek, die eine saubere und einfache M\u00f6glichkeit zur Zahlungsintegration bietet. Installieren Sie die Omnipay-Bibliothek mit dem folgenden Befehl in Ihrem Projekt:<\/p>\n<pre><code>composer require league\/omnipay:^3<\/code><\/pre>\n<p>Es installiert die Omnipay-Bibliothek. Au\u00dferdem m\u00fcssen wir das Omnipay-Paket f\u00fcr Authorize.Net installieren. Dieses Paket erm\u00f6glicht es uns, Zahlungen \u00fcber das Authorize.Net-Zahlungsgateway zu erfassen. Lesen Sie mehr \u00fcber dieses Paket in der <a href=\"https:\/\/github.com\/academe\/omnipay-authorizenetapi\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Dokumentation<\/a>. F\u00fchren Sie den folgenden Befehl aus, um dieses Paket zu installieren:<\/p>\n<pre><code>composer require \"academe\/omnipay-authorizenetapi: ~3.0\"<\/code><\/pre>\n<p>Wir sind mit unterst\u00fctzten Bibliotheken bereit. Lassen Sie uns nun ein einfaches Formular erstellen, um den Betrag und die Kartendetails einzugeben. Ich erstelle eine <code>index.php<\/code>Datei und f\u00fcge den folgenden HTML-Code hinzu.<\/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>Bei der Annahme von Online-Zahlungen m\u00fcssen wir die Transaktionsdetails in der Datenbank speichern. Um die Transaktionsinformationen zu speichern, erstellen Sie mit der folgenden Abfrage eine Tabelle &quot;Zahlungen&quot; in der Datenbank.<\/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>Akzeptieren Sie Kreditkartenzahlungen mit Authorize.Net<\/h3>\n<p>Sie haben die API-Schl\u00fcssel Ihres Authorize.Net-Kontos in den vorherigen Schritten kopiert. Es ist an der Zeit, diese Schl\u00fcssel zum PHP-Code hinzuzuf\u00fcgen. Speichern Sie diese Anmeldeinformationen in der <code>config.php<\/code>Datei. Ich f\u00fcge dieser Datei auch die Datenbankverbindung hinzu.<\/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>Ersetzen Sie die Platzhalter durch die tats\u00e4chlichen Werte. W\u00e4hrend wir die Zahlungen in der Sandbox testen, habe ich die Methode &quot;true&quot; bestanden <code>setTestMode<\/code>. Wenn Sie bereit sind, mit der Produktion fortzufahren, entfernen\/kommentieren Sie diese Zeile.<\/p>\n<p>In dem oben erstellten Formular habe ich <code>charge.php<\/code>als Aktions-URL festgelegt. Dies bedeutet, dass der eigentliche Code, der die Kreditkartenzahlung erfasst, in diese Datei eingef\u00fcgt wird.<\/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>Sie k\u00f6nnen jetzt eine Zahlung testen. Holen Sie sich diese <a href=\"https:\/\/developer.authorize.net\/hello_world\/testing_guide\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Test-Kreditkartennummern,<\/a> um die Zahlung zu testen. Bei erfolgreicher Antwort sollten Sie Ihre Transaktions-ID erhalten.<\/p>\n<p>Der Eigent\u00fcmer kann die Transaktionen im Authorize.Net-Dashboard sehen. Transaktionen finden Sie unter &#8218;Nicht abgewickelte Transaktionen&#8216;. Authorize.Net wickelt die Transaktion sp\u00e4ter selbstst\u00e4ndig ab und benachrichtigt Sie per 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=\"Akzeptieren Sie Kreditkartenzahlungen mit Authorize.Net Payment Gateway in PHP\" ><\/a><\/p>\n<p>Ich hoffe, Sie verstehen, wie Kreditkartenzahlungen \u00fcber das Authorize.Net-Zahlungsgateway akzeptiert werden. Bitte teilen Sie Ihre Gedanken oder Vorschl\u00e4ge im Kommentarbereich unten mit.<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/paypal-payment-gateway-integration-in-php-uber-die-paypal-rest-api\/\" title=\"PayPal Payment Gateway-Integration in PHP \u00fcber die PayPal REST API\">PayPal Payment Gateway-Integration in PHP \u00fcber die PayPal REST API<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/eine-anleitung-fuer-die-stripe-integration-in-eine-website-mit-php\/\" title=\"Ein Leitfaden f\u00fcr die Stripe-Integration in Websites mit PHP\">Ein Leitfaden f\u00fcr die Stripe-Integration in Websites mit PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/akzeptieren-sie-kreditkartenzahlungen-mit-paypal-payments-pro-in-php\/\" title=\"Akzeptieren Sie Kreditkartenzahlungen mit Paypal Payments Pro in PHP\">Akzeptieren Sie Kreditkartenzahlungen mit Paypal Payments Pro in PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <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 diesem Artikel untersuchen wir, wie Sie Authorize.net f\u00fcr die Akzeptanz von Kreditkartenzahlungen integrieren. Das Hinzuf\u00fcgen einer Kreditkartenzahlungsoption ist sehr \u00fcblich<\/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":[272],"tags":[845],"class_list":["post-25838","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-3","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25838","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=25838"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25838\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/21609"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=25838"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=25838"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=25838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}