Empfangen von Stripe-Webhooks auf einer WordPress-Website

Lesezeit: 3 Minuten

Ich habe eine WordPress-Website, die auf GoDaddy gehostet wird.

Ich bin ein fortgeschrittener Stripe-Benutzer und habe Stripe in viele Ruby on Rails-Apps integriert, zusammen mit der Stripe-Webhook-Integration mit Rails. Außerdem kenne ich mich gut mit der Funktionsweise von Web-Hooks aus. Aber vor kurzem wurde ich Eigentümer einer WordPress-Website, die auf GoDaddy gehostet wird, und auf dieser Website soll ich einen Stripe-Zahlungsfehler-Webhook erhalten und dann eine E-Mail basierend auf diesem Webhook-Ereignis auslösen. Ich kann aus Online-Ressourcen nicht viel mit WordPress und Stripe verbinden und benötige Hilfe, wie ich Stripe-Webhooks auf der WordPress-Website empfangen kann, dh wo ich Code einfügen muss, um dies zu ermöglichen usw.

Ich hatte kürzlich das gleiche Problem und das Pippins Stripe-Integrations-Plugin schien es zu beantworten, aber es hatte eine Menge zusätzlichen Codes, den ich nicht brauchte, also habe ich ihn entfernt und eine kurze Version nur für die Webhook-Integration erstellt: WPStripeWebhook. README ist selbsterklärend. Nehmen Sie grundsätzlich Änderungen an der Includes/stripe_listener.php für Ihre Veranstaltungen vor. Hier auch eine Readme-Datei gemäß den Stackoverflow-Richtlinien anhängen:

Verwendungszweck:

  1. Kopieren Sie den kompletten Ordner WPStripeWebhook in wp-content/plugins. Gehen Sie zur Website-Admin-Seite.

  2. Aktivieren Sie das WP Stripe-Webhook-Plugin für den Plugin-Bereich.

  3. Danach wird in den Einstellungen der Abschnitt mit den Stripe-Webhook-Einstellungen angezeigt. Klick es an. Füllen Sie auf der Seite die Streifenschlüssel aus und aktivieren Sie die Testmodusoption, wenn Sie das Plugin testen möchten.
  4. Nehmen Sie in WPStripeWebhook/includes/stripe_listener.php Änderungen für Ihren Ereignistyp und Ihre E-Mail oder was auch immer Sie als Reaktion darauf tun möchten vor
    ein Ereignis. Es sendet derzeit eine E-Mail.

Wichtige Hinweise und Anregungen
Fügen Sie für den Live-Modus den Stripe-Webhook-Endpunkt (Stripe-Konto -> Einstellungen -> Kontoeinstellungen -> Webhook) wie folgt hinzu

https://ihredomain.com?webhook-listener=stripe

Zum Testen lokal auf Ihrem Computer können Sie Ultrahook verwenden. Es ist toll! Richten Sie Ihre Schlüssel und Ihren Benutzernamen ein und starten Sie Ultrahook auf Ihrem Computer mit:

ultrahook -k your_ultrahook_key Streifen 8888

Fügen Sie Ihrem Stripe-Konto eine ähnliche Webhook-Endpunkt-URL hinzu:

http://stripe.your_ultrahook_username.ultrahook.com/your_wp_website_folder_name/stripe-listener.php?webhook-listener=stripe

Und es sollte anfangen, für Sie zu arbeiten. Außerdem sehen Sie möglicherweise 404 in der Ultrahook-Konsole. Ignoriere es einfach. Ich würde auch vorschlagen, das Debugging einzurichten. Es hilft wirklich. Fügen Sie diese zum Debuggen zu Ihrer wp_config.php hinzu

define('WP_DEBUG', true); 
define( 'WP_DEBUG_LOG', true ); 
define('WP_DEBUG_DISPLAY', false ); 
@ini_set( 'display_errors', 0 ); 
define('SCRIPT_DEBUG', true );

Danach solltest du eine debug.log-Datei in deinem wp-content-Ordner sehen und sie wird Fehler und Warnungen anzeigen und alles, was du mit error_log() ausdruckst.

  • Gibt es Pläne, dies für die neueste Version von Stripe zu aktualisieren? Das sah sehr nützlich aus, aber es funktioniert nicht und seitdem gab es große Änderungen an stripe-php.

    – Sean Doherty

    16. Juli 2021 um 6:36 Uhr

Benutzer-Avatar
ein Meerestagebuch

Hier sind meine zwei Cent. Für die Nachwelt und weil die akzeptierte Antwort es für mich nicht getan hat.

Wir können die verwenden WordPress-REST-API.

Durch Erweiterung der REST-API und Hinzufügen von benutzerdefinierten Endpunkten durch die register_rest_route Funktion.

<?php

add_action( 'rest_api_init', 'wpso40015091' );

function wpso40015091() {

    $routes = array(
        array(
            'namespace' => 'wpso40015091/listener/v1',
            'route' => 'endpoint',

            //www.example.com/index.php/wp-json/wpso40015091/listener/v1/endpoint
            //This is the endpoint to add in your Stripe dashboard webhook section.
            //From time to time, depending on your host, the "index.php" might be omitted.
            //You can use "get_rest_url()" to Retrieves the URL to a REST endpoint on a site.
            //https://developer.wordpress.org/reference/functions/get_rest_url/
           

            'args' => array(
                'methods' => 'POST',
                'callback' => function () {

                    //...

                },
                'permission_callback' => '__return_true',
            ),
            'override' => true,
        ),
    );

    foreach ( $routes as $route ) {

        register_rest_route( $route['namespace'], $route['route'], $route['args'], $route['override'] );

    };

};

Die Callback-Funktion ist der Ereignis-Listener. Stripe hat einen eingebauten Generator, siehe https://stripe.com/docs/webhooks/quickstart.

1225290cookie-checkEmpfangen von Stripe-Webhooks auf einer WordPress-Website

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy