Jump to content

Recommended Posts

Hola chic@s, tengo un problema que se esta convirtiendo en un problemon, ya que me tiene atascado desde hace varios días. Mi problema es que en la plataforma del prestashop entro y veo habilitados los módulos de pago:

-Redsys

-Cheque

-Transferencia bancaria

-Cash on delivery

Pero luego a la hora de consultar los "order_payments" de la API, solo me saca la opción de "cash on delivery" y la "transferencia bancaria". Por otro lado, al intentar hacer un pedido vía API, conseguimos hacer de todo, volcar los productos, actualizarlos, volcar fabricantes, direcciones, clientes, hacer carritos, pero a la hora de hacer un pedido nos devuelve un error constantemente. Hemos revisado el método de pago la zona del país en cuestión, la moneda que usa, todo creemos que esta bien ya que lo consultamos a la API antes de meterlo en el pedido. Podéis echarme una mano? Aquí os dejo la llamada y el error, a ver si os ha pasado alguna vez o sabéis como solucionarlo. Por cierto la versión del prestashop es el 1.6.1.5.

Muchas gracias a todos. Saludos!

$opt = array('resource' => $tipo);

$xml = $this->webService->get(array('url' => PS_SHOP_PATH.'api/orders?schema=blank'));
$resources = $xml->children()->children();
                    
unset($resources->id);                  
unset($resources->date_add);                   
unset($resources->date_upd);                  
unset($resources->delivery_date);
unset($resources->invoice_date);
unset($resources->total_discounts_tax_incl);
unset($resources->total_discounts_tax_excl);

$resources->id_address_delivery = $elemento['direccion_facturacion_ps'];
$resources->id_address_invoice = $elemento['direccion_envio_ps'];  

$resources->id_cart = $elemento['pedido_carrito'];
$resources->id_currency = $elemento['pedido_currency'];                 
$resources->id_lang = $elemento['pedido_lenguaje_id'];                    
$resources->id_customer = $elemento['cliente_id_ps'];
$resources->id_carrier = $elemento['pedido_transportista_id'];     
$resources->total_paid = $elemento['total_con_iva'];                  
$resources->total_paid_real = $elemento['total_con_iva'];                                 
$resources->total_products = $elemento['total_productos'];
                    
$resources->total_products_wt=0;                    
$resources->conversion_rate =1;                                     
$resources->valid = 1;                                      
$resources->current_state = $elemento['estado_ps'];                                      

$i=0;
foreach ($elemento['lineas'] as $linea) {
	$resources->associations->order_rows->order_row[$i]->product_id = $linea['producto_id_ps'];
	$resources->associations->order_rows->order_row[$i]->product_attribute_id = '0';
	$resources->associations->order_rows->order_row[$i]->product_upc = '0';
	$resources->associations->order_rows->order_row[$i]->product_quantity = $linea['unidades'];
	$resources->associations->order_rows->order_row[$i]->product_name = $linea['descripcion'];
	$resources->associations->order_rows->order_row[$i]->product_reference = $linea['referencia'];
	$resources->associations->order_rows->order_row[$i]->product_ean13 = $linea['ean'];
	$resources->associations->order_rows->order_row[$i]->unit_price_tax_incl = $linea['precio_venta'];
	$resources->associations->order_rows->order_row[$i]->unit_price_tax_excl = $linea['precio_compra'];
    $i++;
}

$resources->payment=1; //tipo pago
$resources->module='redsys';
Fatal error: Uncaught exception 'PrestaShopException' with message 'Can't save Order Payment ' in /xxxxxx/xxxxxx/public_html/classes/PaymentModule.php:413
Stack trace:
#0 /xxxxxx/xxxxxx/public_html/classes/order/Order.php(1573): PaymentModuleCore->validateOrder('109', '12', '149', '1', NULL, Array, NULL, false, 'xxxxxx')
#1 /xxxxxx/xxxxxx/public_html/classes/webservice/WebserviceRequest.php(1477): OrderCore->addWs()
#2 /xxxxxx/xxxxxx/public_html/classes/webservice/WebserviceRequest.php(1291): WebserviceRequestCore->saveEntityFromXml(201)
#3 /xxxxxx/xxxxxx/public_html/classes/webservice/WebserviceRequest.php(518): WebserviceRequestCore->executeEntityPost()
#4 /xxxxxx/xxxxxx/public_html/webservice/dispatcher.php(87): WebserviceRequestCore->fetch('xxxxxx', 'POST', 'orders', Array, false, '<?xml version="...')
#5 {main}
  thrown in /xxxxxx/xxxxxx/public_html/classes/PaymentModule.php on line 413

 

Link to comment
Share on other sites

Hola buenas compañero, el modulo de redsys que tienes es de pago o gratuito? Que version es?

As que te refieres con lo de la "API" ?

Mira tambien por si acaso en la pestaña Modulos>Pago>Restricciones por moneda

Si tienes activas las casillas de los modulos que no te funcionan...

saludos

JavierP

Link to comment
Share on other sites

On 31/8/2018 at 3:06 PM, JavierP said:

Hola buenas compañero, el modulo de redsys que tienes es de pago o gratuito? Que version es?

As que te refieres con lo de la "API" ?

Mira tambien por si acaso en la pestaña Modulos>Pago>Restricciones por moneda

Si tienes activas las casillas de los modulos que no te funcionan...

saludos

JavierP

 

Gracias por la respuesta, la version de la API , supongo que sera la misma que la de prestashop, es 1.6.1.5 y  las restricciones de pago estan bien configuradas.

La version de redsys es 3.0.

Gracias!

Link to comment
Share on other sites

  • 2 weeks later...

Vale, descargate de todas formas la ultima version disponible de redsys que tienen en la web que es la 3.0.4 http://www.redsys.es/comercio-electronico/modulos/redsys_prestashop.zip 

desde ese enlace de descarga directamente. Tambien dicerte que si tienes certificado ssl, tienes que darlo de alta tambien a nivel de ip, cosa que te la tiene que gestionar tu hosting.
Han reportado unos cuantos problemas por eso

Saludos

JavierP

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...