Magento2: Los pagos de Braintree Vault hacen que la API de pedido GET arroje un error

Creado en 18 ago. 2016  ·  3Comentarios  ·  Fuente: magento/magento2

Condiciones previas

  1. Magento CE o EE 2.1, PHP 7.0.8
  2. Método de pago Braintree configurado y habilitado, Vault habilitado: sí

    pasos para reproducir

  3. Cree un pedido con el método de pago Braintree y guarde la tarjeta

  4. Cree otro pedido, esta vez utilizando la tarjeta guardada como método de pago
  5. Haga una llamada al resto de la API para OBTENER /rest/V1/orders

    Resultado Esperado

  6. Pedido json devuelto

    Resultado actual

  7. Se devuelve el error: Notice: Array to string conversion in vendor/magento/framework/Reflection/TypeCaster.php on line 34 con seguimiento de pila

La causa de este error se debe a que los pagos de Vault almacenan una matriz dentro del campo additional_information en la tabla sales_order_payment . La matriz dentro es token_metadata que es una matriz que contiene customer_id y public_hash .
Esto se agregó en https://github.com/magento/magento2/commit/16d049fa4117f562120a68927c8c30c6b1e758b5

El error se arroja en Magento\Framework\Reflection\DataObjectProcessor::buildOutputDataArray :
https://github.com/magento/magento2/blob/2.1/lib/internal/Magento/Framework/Reflection/DataObjectProcessor.php#L115

El código intenta convertir el campo token_metadata en una cadena, lo que provoca que la matriz tenga un error de conversión de cadena.

El error ocurre al procesar el método getAdditionalInformation
Magento\Sales\Api\Data\OrderPaymentInterface::getAdditionalInformation :
https://github.com/magento/magento2/blob/2.1/app/code/Magento/Sales/Api/Data/OrderPaymentInterface.php#L266
El método está marcado con un tipo de retorno de string[] , por lo que todos los valores del atributo additional_information deben ser de clase string o Phrase .

Es necesario que haya una forma de manejo cuando el atributo additional_information tiene un valor de matriz dentro de él, o el additional_information debe aplicarse para que solo tenga valores de cadena.

Payment Sales Ready for Work bug report

Comentario más útil

@ alena-marchenko @ joni-jones ¿Sabes cuándo se lanzará esta solución? Mencionaste 2.1.3, pero ¿tienes alguna fecha de lanzamiento para esta versión?

Todos 3 comentarios

Hola, @phirunson , gracias por el informe y la descripción detallada. Este problema también se puede reproducir en el último desarrollo. He creado MAGETWO-57115 interno.

Hola @phirunson ,

La solución para el boleto MAGETWO-57115 ya se fusionó para desarrollar la sucursal.
Cerrando el problema, no dude en volver a abrir si el problema aún se puede reproducir.

@ alena-marchenko @ joni-jones ¿Sabes cuándo se lanzará esta solución? Mencionaste 2.1.3, pero ¿tienes alguna fecha de lanzamiento para esta versión?

¿Fue útil esta página
0 / 5 - 0 calificaciones