ctmil / payment_mercadopago

MercadoPago payment module for Odoo Ecommerce
https://www.moldeointeractive.com.ar/p/mercadopago-odoo
27 stars 65 forks source link

Error: invalid_notification_url #22

Open l-portugal opened 3 years ago

l-portugal commented 3 years ago

Al querer realizar el pago a través de mercado pago, me arroja el siguiente mensaje de error:

Error de Servidor:
No podemos redirigirlo al formulario de pago. Returning response is:{ "status": 400, "response": { "message": "notificaction_url attribute must be a valid url", "error": "invalid_notification_url", "status": 400, "cause": null } }

He probado tanto en producción como en desarrollo. A su vez también activando IPN y desactivando el mismo.

celm1990 commented 3 years ago

Hola, seria bueno que indiques la versión de Odoo que estas usando,

Adicional si es V12 te invito a probar la rama https://github.com/Loo-ERP/payment_mercadopago/tree/12.0-mercado-pago-new-sdk donde estoy implementando el nuevo SDK(por ahora en CheckOut API pero mas adelante podría implementarse el Checkout Pro, tengo una rama donde estaba implementándolo) cualquier comentario es bienvenido en el PR https://github.com/ctmil/payment_mercadopago/pull/21

l-portugal commented 3 years ago

Hola, seria bueno que indiques la versión de Odoo que estas usando,

Adicional si es V12 te invito a probar la rama https://github.com/Loo-ERP/payment_mercadopago/tree/12.0-mercado-pago-new-sdk donde estoy implementando el nuevo SDK(por ahora en CheckOut API pero mas adelante podría implementarse el Checkout Pro, tengo una rama donde estaba implementándolo) cualquier comentario es bienvenido en el PR #21

Hola Carlos, gracias por tu resppuesta. La versión que utilizo es Odoo 14, y la rama que instalé es https://github.com/ctmil/payment_mercadopago/tree/14.0

Por suerte pude "resolverlo" momentaneamente de la siguiente manera:

En el archivo models/mercadopago.py, comenté la linea 314:

Cambiar "notification_url": '%s' % urljoin( base_url, MercadoPagoController._notify_url),

Por #"notification_url": '%s' % urljoin( base_url, MercadoPagoController._notify_url),

Ya con eso no me arroja el error mencionado.

Aún me queda determinar el causante del error, pero de momento funciona.

Saludos.

celm1990 commented 3 years ago

Por suerte pude "resolverlo" momentaneamente de la siguiente manera:

En el archivo models/mercadopago.py, comenté la linea 314:

Cambiar "notification_url": '%s' % urljoin( base_url, MercadoPagoController._notify_url),

Por #"notification_url": '%s' % urljoin( base_url, MercadoPagoController._notify_url),

Ya con eso no me arroja el error mencionado.

Aún me queda determinar el causante del error, pero de momento funciona.

Saludos.

Podria ser problema con el parametroweb.base.url que no esta tomando tu dominio correctamente, o tienes algun parametro web.base.url.freeze y has cambiado de dominio, se me ocurre, con todo lo idea seria q depures que valor se esta pasando en notification_url

marcos-mendez commented 1 week ago

Esta muy raro, Esto sigue siendo normal en la v16.

el web.base.url esta configurado correctamente y el web.base.url.freeze como true o como false no hace diferencia.

aparentemente el modulo esta sacando essa informacion del /etc/hosts del servidor lo que no hace sentido es el unico lugar donde la ip 127.0.0.1 esta configurada.

Coloco el log aqui por las dudas si alguien descubrió donde esta passando todo esto porque evidentemente algun error tiene ele modulo.

2024-09-16 19:55:06,634 290158 INFO quegenial werkzeug: 127.0.0.1 - - [16/Sep/2024 19:55:06] "POST /web/dataset/call_kw/ir.config_parameter/unlink HTTP/1.1" 200 - 41 0.056 4.459
2024-09-16 19:55:06,735 290158 INFO quegenial werkzeug: 127.0.0.1 - - [16/Sep/2024 19:55:06] "POST /web/dataset/call_kw/ir.config_parameter/web_search_read HTTP/1.1" 200 - 14 0.007 0.010
2024-09-16 19:55:12,287 290158 INFO ? odoo.service.server: Initiating shutdown 
2024-09-16 19:55:12,287 290158 INFO ? odoo.service.server: Hit CTRL-C again or send a second signal to force the shutdown. 
2024-09-16 19:55:12,726 290158 INFO ? odoo.sql_db: ConnectionPool(used=0/count=0/max=64): Closed 4 connections  
2024-09-16 19:55:14,663 290187 INFO ? odoo: Odoo version 16.0 
2024-09-16 19:55:14,663 290187 INFO ? odoo: Using configuration file at /etc/odoo/odoo.conf 
2024-09-16 19:55:14,663 290187 INFO ? odoo: addons paths: ['/usr/lib/python3/dist-packages/odoo/addons', '/var/lib/odoo/.local/share/Odoo/addons/16.0', '/opt/oca/website', '/opt/oca/web', '/opt/oca/social', '/opt/oca/e-commerce', '/opt/oca/product-attribute', '/opt/oca/sale-workflow'] 
2024-09-16 19:55:14,663 290187 INFO ? odoo: database: odoo@localhost:default 
2024-09-16 19:55:15,254 290187 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/bin/wkhtmltopdf 
2024-09-16 19:55:16,258 290187 INFO ? odoo.service.server: HTTP service (werkzeug) running on odoo:8069 
2024-09-16 19:55:21,400 290187 INFO quegenial odoo.modules.loading: loading 1 modules... 
2024-09-16 19:55:21,414 290187 INFO quegenial odoo.modules.loading: 1 modules loaded in 0.01s, 0 queries (+0 extra) 
2024-09-16 19:55:21,420 290187 INFO quegenial odoo.modules.loading: loading 97 modules... 
2024-09-16 19:55:24,400 290187 INFO quegenial odoo.modules.loading: 97 modules loaded in 2.98s, 0 queries (+0 extra) 
2024-09-16 19:55:24,851 290187 INFO quegenial odoo.modules.loading: Modules loaded. 
2024-09-16 19:55:24,859 290187 INFO quegenial odoo.modules.registry: Registry loaded in 3.494s 
2024-09-16 19:55:24,870 290187 INFO quegenial odoo.addons.base.models.ir_http: Generating routing map for key 1 
2024-09-16 19:55:25,466 290187 INFO quegenial odoo.addons.payment.models.payment_transaction: generic and provider-specific processing values for transaction with reference S00004:
{'amount': 1.22,
 'currency_id': 46,
 'partner_id': 3,
 'provider_code': 'mercado_pago',
 'provider_id': 8,
 'reference': 'S00004'} 
2024-09-16 19:55:25,467 290187 INFO quegenial odoo.addons.payment_mercado_pago.models.payment_transaction: Sending '/checkout/preferences' request for link creation:
{'auto_return': 'all',
 'back_urls': {'failure': 'http://127.0.0.1:8069/payment/mercado_pago/return',
               'pending': 'http://127.0.0.1:8069/payment/mercado_pago/return',
               'success': 'http://127.0.0.1:8069/payment/mercado_pago/return'},
 'external_reference': 'S00004',
 'items': [{'currency_id': 'UYU',
            'quantity': 1,
            'title': 'S00004',
            'unit_price': 1.22}],
 'notification_url': 'http://127.0.0.1:8069/payment/mercado_pago/webhook/S00004',
 'payer': {'address': {'street_name': 'CALLE Y NUMERO', 'zip_code': '13000'},
           'email': 'quegenialstoreuy@gmail.com',
           'name': 'Que Genial Store',
           'phone': {'number': '+59899079037'}},
 'payment_methods': {'installments': 1}} 
2024-09-16 19:55:26,034 290187 ERROR quegenial odoo.addons.payment_mercado_pago.models.payment_provider: Invalid API request at https://api.mercadopago.com/checkout/preferences with data:
{'auto_return': 'all',
 'back_urls': {'failure': 'http://127.0.0.1:8069/payment/mercado_pago/return',
               'pending': 'http://127.0.0.1:8069/payment/mercado_pago/return',
               'success': 'http://127.0.0.1:8069/payment/mercado_pago/return'},
 'external_reference': 'S00004',
 'items': [{'currency_id': 'UYU',
            'quantity': 1,
            'title': 'S00004',
            'unit_price': 1.22}],
 'notification_url': 'http://127.0.0.1:8069/payment/mercado_pago/webhook/S00004',
 'payer': {'address': {'street_name': 'CALLE Y NUMERO', 'zip_code': '13000'},
           'email': 'quegenialstoreuy@gmail.com',
           'name': 'Que Genial Store',
           'phone': {'number': '+59899079037'}},
 'payment_methods': {'installments': 1}} 
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/addons/payment_mercado_pago/models/payment_provider.py", line 66, in _mercado_pago_make_request
    response.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://api.mercadopago.com/checkout/preferences
2024-09-16 19:55:26,042 290187 WARNING quegenial odoo.http: Mercado Pago: The communication with the API failed. Mercado Pago gave us the following information: 'notificaction_url attribute must be a valid url' (code invalid_notification_url)
marcos-mendez commented 1 week ago

PD: esto me pasa con el modulo mercado_pago nativo de odoo (que es un derivado de este)