...
✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Akzeptieren Sie Kreditkartenzahlungen mit Authorize.Net Payment Gateway in PHP

37

Sie möchten eine Kreditkartenzahlungsmöglichkeit auf Ihrer Website integrieren? Wenn ja, dann ist Authorize.Net eine gute Wahl für Sie. 1996 gegründet, ist dies eines der beliebtesten Zahlungsgateways im Internet.

Für einen Online-Shop werden Kreditkarten häufig verwendet, um Zahlungen zu akzeptieren. Kunden bevorzugen es, mit Kreditkarten zu bezahlen, um Online-Produkte zu kaufen. In Ihrem Geschäft müssen 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önnen.

Immer wenn wir Zahlungsgateways hinzufügen, müssen wir zuerst die Transaktionen im Sandbox-Modus testen. Sobald die Testzahlungen korrekt funktionieren, können Sie sich für die Live-Version entscheiden.

Um mit Authorize.Net zu beginnen, erstellen Sie zunächst ein Sandbox-Konto. Kopieren Sie bei der Kontoerstellung die Anmelde-ID und den Transaktionsschlüssel. Sie können diese API-Schlüssel unter Account->API Credentials & Keys abrufen. Bitte beachten Sie den Screenshot unten.

Akzeptieren Sie Kreditkartenzahlungen mit Authorize.Net Payment Gateway in PHP

Auf der nächsten Seite erhalten Sie Ihre ‘API Login ID’. Erstellen Sie einen Transaktionsschlüssel aus dem Abschnitt ‘Neue(n) Schlüssel erstellen’, wie im folgenden Screenshot gezeigt.

Akzeptieren Sie Kreditkartenzahlungen mit Authorize.Net Payment Gateway in PHP

Einstieg

Um Authorize.Net zu integrieren, verwenden wir die Omnipay- Bibliothek, die eine saubere und einfache Möglichkeit zur Zahlungsintegration bietet. Installieren Sie die Omnipay-Bibliothek mit dem folgenden Befehl in Ihrem Projekt:

composer require league/omnipay:^3

Es installiert die Omnipay-Bibliothek. Außerdem müssen wir das Omnipay-Paket für Authorize.Net installieren. Dieses Paket ermöglicht es uns, Zahlungen über das Authorize.Net-Zahlungsgateway zu erfassen. Lesen Sie mehr über dieses Paket in der Dokumentation. Führen Sie den folgenden Befehl aus, um dieses Paket zu installieren:

composer require "academe/omnipay-authorizenetapi: ~3.0"

Wir sind mit unterstützten Bibliotheken bereit. Lassen Sie uns nun ein einfaches Formular erstellen, um den Betrag und die Kartendetails einzugeben. Ich erstelle eine index.phpDatei und füge den folgenden HTML-Code hinzu.

<form action="charge.php" method="post">
    <input type="text" name="amount" placeholder="Enter Amount" />
    <input type="text" name="cc_number" placeholder="Card Number" />
    <input type="text" name="expiry_month" placeholder="Month" />
    <input type="text" name="expiry_year" placeholder="Year" />
    <input type="text" name="cvv" placeholder="CVV" />
    <input type="submit" name="submit" value="Submit" />
</form>

Bei der Annahme von Online-Zahlungen müssen wir die Transaktionsdetails in der Datenbank speichern. Um die Transaktionsinformationen zu speichern, erstellen Sie mit der folgenden Abfrage eine Tabelle "Zahlungen" in der Datenbank.

CREATE TABLE `payments` ( `id` int(11) NOT NULL AUTO_INCREMENT,
 `transaction_id` varchar(255) NOT NULL,
 `amount` float(10,2) NOT NULL,
 `currency` varchar(255) NOT NULL,
 `payment_status` varchar(255) NOT NULL,
 `captured_at` datetime NOT NULL DEFAULT current_timestamp(),
 PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Akzeptieren Sie Kreditkartenzahlungen mit Authorize.Net

Sie haben die API-Schlüssel Ihres Authorize.Net-Kontos in den vorherigen Schritten kopiert. Es ist an der Zeit, diese Schlüssel zum PHP-Code hinzuzufügen. Speichern Sie diese Anmeldeinformationen in der config.phpDatei. Ich füge dieser Datei auch die Datenbankverbindung hinzu.

config.php

<?php
require_once "vendor/autoload.php";
  
// Connect with the database
$db = new mysqli('localhost', 'MYSQL_DB_USERNAME', 'MYSQL_DB_PASSWORD', 'MYSQL_DB_NAME');
  
if ($db->connect_errno) {
    die("Connect failed: ". $db->connect_error);
}
  
$gateway = OmnipayOmnipay::create('AuthorizeNetApi_Api');
$gateway->setAuthName('PASTE_ANET_API_LOGIN_ID');
$gateway->setTransactionKey('PASTE_ANET_TRANSACTION_KEY');
$gateway->setTestMode(true); //comment this line when move to 'live'

Ersetzen Sie die Platzhalter durch die tatsächlichen Werte. Während wir die Zahlungen in der Sandbox testen, habe ich die Methode "true" bestanden setTestMode. Wenn Sie bereit sind, mit der Produktion fortzufahren, entfernen/kommentieren Sie diese Zeile.

In dem oben erstellten Formular habe ich charge.phpals Aktions-URL festgelegt. Dies bedeutet, dass der eigentliche Code, der die Kreditkartenzahlung erfasst, in diese Datei eingefügt wird.

charge.php

<?php
require_once "config.php";
  
if (isset($_POST['submit'])) {
  
    try {
        $creditCard = new OmnipayCommonCreditCard([
            'number' => $_POST['cc_number'],
            'expiryMonth' => $_POST['expiry_month'],
            'expiryYear' => $_POST['expiry_year'],
            'cvv' => $_POST['cvv'],
        ]);
  
        // Generate a unique merchant site transaction ID.
        $transactionId = rand(100000000, 999999999);
  
        $response = $gateway->authorize([
            'amount' => $_POST['amount'],
            'currency' => 'USD',
            'transactionId' => $transactionId,
            'card' => $creditCard,
        ])->send();
  
        if($response->isSuccessful()) {
  
            // Captured from the authorization response.
            $transactionReference = $response->getTransactionReference();
  
            $response = $gateway->capture([
                'amount' => $_POST['amount'],
                'currency' => 'USD',
                'transactionReference' => $transactionReference,
                ])->send();
  
            $transaction_id = $response->getTransactionReference();
            $amount = $_POST['amount'];
  
            // Insert transaction data into the database
            $isPaymentExist = $db->query("SELECT * FROM payments WHERE transaction_id = '".$transaction_id."'");
  
            if($isPaymentExist->num_rows == 0) {
                $insert = $db->query("INSERT INTO payments(transaction_id, amount, currency, payment_status) VALUES('$transaction_id', '$amount', 'USD', 'Captured')");
            }
  
            echo "Your payment transaction id: ". $transaction_id;
        } else {
            // not successful
            echo $response->getMessage();
        }
    } catch(Exception $e) {
        echo $e->getMessage();
    }
}

Sie können jetzt eine Zahlung testen. Holen Sie sich diese Test-Kreditkartennummern, um die Zahlung zu testen. Bei erfolgreicher Antwort sollten Sie Ihre Transaktions-ID erhalten.

Der Eigentümer kann die Transaktionen im Authorize.Net-Dashboard sehen. Transaktionen finden Sie unter ‘Nicht abgewickelte Transaktionen’. Authorize.Net wickelt die Transaktion später selbstständig ab und benachrichtigt Sie per E-Mail.

Akzeptieren Sie Kreditkartenzahlungen mit Authorize.Net Payment Gateway in PHP

Ich hoffe, Sie verstehen, wie Kreditkartenzahlungen über das Authorize.Net-Zahlungsgateway akzeptiert werden. Bitte teilen Sie Ihre Gedanken oder Vorschläge im Kommentarbereich unten mit.

Zum Thema passende Artikel

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen