在WordPress网站上接收条纹Webhooks

时间:2016-10-13 作者:Sahil Dhankhar

我在GoDaddy上有一个wordpress网站。

我是一名高级stripe用户,已将stripe与许多Ruby on Rails应用程序集成,并将stripe webhook与Rails集成。此外,我还非常熟悉web挂钩的工作方式。但最近,我成为了GoDaddy上托管的wordpress网站的所有者,在该网站上,我本应收到条带支付失败的webhook,然后根据该webhook事件触发一封电子邮件。我无法通过在线资源与wordpress和stripe建立太多联系,需要帮助了解如何在wordpress网站上接收stripe webhooks,即在何处放置代码以实现这一点等。

3 个回复
最合适的回答,由SO网友:AmrataB 整理而成

我最近也遇到了同样的问题,pippins stripe集成插件似乎可以解决这个问题,但它有很多我不需要的额外代码,所以我删除了它,并为webhook集成制作了一个简洁的版本:WPStripeWebhook. 自述是不言自明的。基本上对includes/stripe\\u侦听器进行更改。php用于您的活动。还根据stackoverflow指南将自述文件附加到此处:

Usage:

<在wp内容/插件中复制完整的文件夹WPStripeWebBook。转到网站管理页。

激活WP Stripe webhook plugin for plugins部分。

此设置后,将开始显示StripeWebBook设置部分。单击它。如果要测试插件,请在页面中填写stripekeys并选中测试模式选项

  • 在WPStripeWebBook/includes/stripe\\u侦听器中。php,对事件类型和电子邮件或任何您想要响应事件的操作进行更改。它目前发送一封电子邮件
  • Important notes and suggestions对于实时模式,添加条带webhook端点(条带帐户->设置->帐户设置->webhook),如下所示

    htps://yourdomain.com?webhook-侦听器=条带

    要在计算机上进行本地测试,可以使用Ultrahook. 太棒了!设置密钥和用户名,并在计算机上启动ultrahook,方法是:

    ultrahook-k your\\u ultrahook\\u钥匙条8888

    在条带帐户中添加webhook端点url,如下所示:

    htp://stripe.your_ultrahook_username.ultrahook.com/your_wp_website_folder_name/stripe-listener.php?webhook-侦听器=条带

    它应该开始为你工作了。此外,您可能会在ultrahook控制台中看到404。别理它。我建议也设置调试。这真的很有帮助。要进行调试,请将这些添加到wp\\U配置中。php

    define(\'WP_DEBUG\', true); 
    define( \'WP_DEBUG_LOG\', true ); 
    define(\'WP_DEBUG_DISPLAY\', false ); 
    @ini_set( \'display_errors\', 0 ); 
    define(\'SCRIPT_DEBUG\', true );
    
    在此之后,您应该会看到一个调试。在wp content文件夹中记录文件,它将显示错误和警告以及使用error\\u log()打印的内容

    SO网友:Yawnolly

    任何感兴趣的人。这也可以在没有插件的情况下轻松完成。

    首先在条带中添加端点。https://example.com/payment-failedhttps://example.com/payment-failed.

    SO网友:Paul Thomas

    一种干净的方法是使用向wordpress REST API添加自定义端点

    https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/

    function stripe_task() {
        include_once ABSPATH . \'path/to/stripe/autoloader/or/init\'; //change
    
        $payload = @file_get_contents(\'php://input\');
        $event = null;
        try {
            $event = \\Stripe\\Event::constructFrom(
                json_decode($payload, true)
            );
        } catch(\\UnexpectedValueException $e) {
            // Invalid payload
            http_response_code(400);
            exit();
        }
    
          // Handle the event
         switch ($event->type) {
             case \'customer.subscription.created\':
                 // do something!
                 break;
             // other type cases you wish to handle
             // ...
             // catch all
             default:
                 http_response_code(400);
                 exit();
         }
         http_response_code(400);
    } 
    
    add_action(\'rest_api_init\', 
        function () {
            register_rest_route( \'stripewebhooks/v1\', \'/task\', array(
                \'methods\' => \'POST\',
                \'callback\' => \'stripe_task\',
                \'permission_callback\' => function () {
                    return true; // security can be done in the handler
                }  
            ));
        }
    );
    
    
    然后将端点添加到条带

    e、 g。https://your-site.com/?rest_route=/stripewebhooks/v1/task

    您还可以通过签名验证提高安全性:https://stripe.com/docs/webhooks/signatures