Versão 2.5.0 – problemas com token em webhooks woocommerce
-
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' );
}
}
- The topic ‘Versão 2.5.0 – problemas com token em webhooks woocommerce’ is closed to new replies.