• A vers?o 2.5.0 tem problemas com a gera??o e armazenamento do token usado para woocoomerce webhooks.

    O erro come?a aqui. Foi criada essa fun??o para “””automatizar””” a gera??o do webhook no asaas. Mas a fun??o que gera o token que será usado n?o o salva para valida??o. Em outras palavras, o webhook é criado com um token, mas esse token n?o é salvo na loja.

    Entao o webhook causa um erro 500 (token invalido) quando o webhook é chamado pelo Asaas. Vale notar que o erro 500 para um token errado é outra falha na implementa??o.. Deveria ser um erro 4**.

        private function set_request_data() {

            $this->name        = __( 'Webhooks from WooCommerce', 'woo-asaas' );

            $this->url         = home_url() . self::WEBHOOK_SUFFIX;

            $this->email       = get_option( 'admin_email' );

            $this->send_type   = 'SEQUENTIALLY';

            $this->enabled     = true;

            $this->interrupted = false;

            $this->auth_token  = ( new Webhook_helper() )->genereate_random_token();

            $this->events      = array(

                Webhook::PAYMENT_CONFIRMED,

                Webhook::PAYMENT_CREATED,

                Webhook::PAYMENT_DELETED,

                Webhook::PAYMENT_OVERDUE,

                Webhook::PAYMENT_RECEIVED,

                Webhook::PAYMENT_REFUNDED,

                Webhook::PAYMENT_RESTORED,

                Webhook::PAYMENT_UPDATED,

            );

        }

    A seguinte fun??o valida se o token é valido, mas get_option( ‘webhook_access_token’ ) n?o existe – nao foi criado na fun??o anterior.

    ? ? private function validate_token() {

    ? ? ? ? $access_token = isset( $_SERVER['HTTP_ASAAS_ACCESS_TOKEN'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_ASAAS_ACCESS_TOKEN'] ) ) : '';

    ? ? ? ? $expected_token = $this->gateway->get_option( 'webhook_access_token' );

    ? ? ? ? $decoded_expected_token = html_entity_decode( $expected_token );

    ? ? ? ? if ( $expected_token !== $access_token && $decoded_expected_token !== $access_token ) {

    ? ? ? ? ? ? throw new \Exception( 'Invalid Token' );

    ? ? ? ? }

    ? ? }
    • This topic was modified 5 months, 1 week ago by Rasmussen.
Viewing 4 replies - 1 through 4 (of 4 total)
Viewing 4 replies - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.