Hola,
Tengo un problema con Paypal, los pagos que recibo son con un importe ligeramente inferior al que muestra el pedido. He contactado con PayPal y me han contestado lo siguiente:
tras revisar su consulta y su cuenta PayPal, he confirmado que el pago con ID xxx ha sido recibido por 49,92 EUR en lugar del importe que nos detalla en su correo. He revisado su cuenta PayPal y se encuentra en perfectas condiciones para recibir pagos, por lo tanto es posible que ocurra un error en la integración de PayPal en su sitio web.
He seguido un hilo cerrado de alguien que tuvo el mismo problema, pero en dicho post no se muestra la solución:
Uso las siguientes versiones y aplicaciones relacionadas:
Joomla 1.5.26
VM 1.9.9
AwoCoupon 1.0.11
Gracias de antemano
URL del sitio: Contenido solo visible a usuarios registrados
Muchas gracias, Jordi! 🙂 🙂 No lo había cambiado en la parte de Seguridad y me fallaba. Ahora me va bien. Intentaré probarlo y si funciona lo pasaré a la web en producción y os cuento. Saludos
Hola, he hecho la prueba en local aplicando estos cambios que me han sugerido en el foro de awo:
admin->components->virtuemart->store->payment method list->paypal->configuration tab
In the Payment Extra Info tab should be a bunch of code. This is the code that creates what is sent to paypal. Take a look at the shipping variable, it should look like this
sprintf("%.2f", $db->f("order_shipping")+$db->f("order_shipping_tax")),
?>
Y parecía que el resultado era CASI perfecto. Descuadraba de 2 centimos de más. Es decir, la cifra que muestra paypal era dos céntimos más cara que la que figura en el pedido de la web....
Pero luego he hecho la prueba con otro producto y me da mal otra vez. YA he hecho tantas pruebas que voy perdido... Así que sigo sin dar con seguridad con algo proximo a una solucion
Nada, que no hay manera.
Definitivamente ha sido casual que en un producto sólo descuadrara de 2 céntimos. He hecho un montón de pruebas en local y en el resto de productos descuadra más. No puedes fiarte.
En fin, yo lo doy por imposible. Pienso que sería muy de agradecer que alguien diera con la solución ya que Paypal es interesante tenerlo, pero con este problema casi voy a optar por deshabilitar esta forma de pago y es una lástima. Pero, por lo que veo, resulta que si activas Paypal ya puedes olvidarte de usar cupones, tanto de awocupon como de virtuemart... 🙁
HOla Alceste
Te sugiero realizar una prueba antes de haber instalado extensiones adicionales relacionadas al pago, como cupones, etc.
Es decir si tienes un backup de tu sitio web inicial o si lo prefieres en un sitio web desde cero, prueba algunos productos con paypal, debería funcionarte correctamente.
Saludos.
.
Hola,
Había hecho pruebas, pero claro, no caí en hacer todas la combinaciones posibles. El caso es que Paypal funciona bien si no usuas cupones (sean awo o los de virtuemart). Y los cupones funcionan bien si no usas paypal. El problema surge cuando se combinan y el caso es que necesitaría usar ambas cosas y no puedo. También he puesto la consulta en el foro de awo, pero por ahora la solución propuesta a mi no me ha funcionado, aunqué por casualidad en un producto concreto parecía que sí.
Me imagino que este mismo problema ocurrirá a muchos otros usuarios y sería bueno dar con una solución. Saludos 🙂
Hola,
El problema no creo que esté vinculado al impuesto de les envíos sinó exclusivamente al uso de cupones. Si no se usan cupones, aunqué en el recibo de paypal no aparece el IVA, lo carga en el total correctamente.
De momento he optado por deshabilitar la forma de pago PayPal 🙁 ¿Alguién puede aportar algo de luz? Es importante tener en cuenta que el problema no se da solamente cuando se usa Awocoupon sinó también cuando se usan los cupones de descuento estándar de Virtuemart que vienen por defecto con el pack tienda. :S
Hola,
Vete a la administración de Virtuemart y entra en Listar formas de pago. Editar el pago con Paypal y vete a la pestaña Configuración. Péganos el código que tienes en Información de pago extra.
Gracias por tu ayuda, Pablo. Este es el código que tengo ahí:
country."' ORDER BY country_2_code ASC";
$db1->query($q);
$url = "https://www.paypal.com/cgi-bin/webscr";
$tax_total = $db->f("order_tax") + $db->f("order_shipping_tax");
$discount_total = $db->f("coupon_discount") + $db->f("order_discount");
$post_variables = Array(
"cmd" => "_ext-enter",
"redirect_cmd" => "_xclick",
"upload" => "1",
"business" => PAYPAL_EMAIL,
"receiver_email" => PAYPAL_EMAIL,
"item_name" => $VM_LANG->_('PHPSHOP_ORDER_PRINT_PO_NUMBER').": ". $db->f("order_id"),
"order_id" => $db->f("order_id"),
"invoice" => $db->f("order_number"),
"amount" => round( $db->f("order_subtotal")+$tax_total-$discount_total, 2),
"shipping" => sprintf("%.2f", $db->f("order_shipping")),
"currency_code" => $_SESSION['vendor_currency'],
"address_override" => "1",
"first_name" => $dbbt->f('first_name'),
"last_name" => $dbbt->f('last_name'),
"address1" => $dbbt->f('address_1'),
"address2" => $dbbt->f('address_2'),
"zip" => $dbbt->f('zip'),
"city" => $dbbt->f('city'),
"state" => $dbbt->f('state'),
"country" => $db1->f('country_2_code'),
"email" => $dbbt->f('user_email'),
"night_phone_b" => $dbbt->f('phone_1'),
"cpp_header_image" => $vendor_image_url,
"return" => SECUREURL ."index.php?option=com_virtuemart&page=checkout.result&order_id=".$db->f("order_id"),
"notify_url" => SECUREURL ."administrator/components/com_virtuemart/notify.php",
"cancel_return" => SECUREURL ."index.php",
"undefined_quantity" => "0",
"test_ipn" => PAYPAL_DEBUG,
"pal" => "NRUBJXESJTY24",
"no_shipping" => "1",
"no_note" => "1"
);
if( $page == "checkout.thankyou" ) {
$query_string = "?";
foreach( $post_variables as $name => $value ) {
$query_string .= $name. "=" . urlencode($value) ."&";
}
vmRedirect( $url . $query_string );
} else {
echo '';
echo '';
foreach( $post_variables as $name => $value ) {
echo '';
}
echo '';
}
?>
Hola,
Podrías probar a cambiar el código:
$url = "www.paypal.com/cgi-bin/webscr"; $tax_total = $db->f("order_tax") + $db->f("order_shipping_tax"); $discount_total = $db->f("coupon_discount") + $db->f("order_discount"); $post_variables = Array( "cmd" => "_ext-enter", "redirect_cmd" => "_xclick", "upload" => "1", "business" => PAYPAL_EMAIL, "receiver_email" => PAYPAL_EMAIL, "item_name" => $VM_LANG->_('PHPSHOP_ORDER_PRINT_PO_NUMBER').": ". $db->f("order_id"), "order_id" => $db->f("order_id"), "invoice" => $db->f("order_number"), "amount" => round( $db->f("order_subtotal")+$tax_total-$discount_total, 2), "shipping" => sprintf("%.2f", $db->f("order_shipping")),
por el siguiente:
$url = "www.paypal.com/cgi-bin/webscr"; $tax_total = 0; $discount_total = 0; $post_variables = Array( "cmd" => "_ext-enter", "redirect_cmd" => "_xclick", "upload" => "1", "business" => PAYPAL_EMAIL, "receiver_email" => PAYPAL_EMAIL, "item_name" => $VM_LANG->_('PHPSHOP_ORDER_PRINT_PO_NUMBER').": ". $db->f("order_id"), "order_id" => $db->f("order_id"), "invoice" => $db->f("order_number"), "amount" => round( $db->f("order_total"), 2), "shipping" => 0,
Realmente, lo que se haría así es poner a 0 los impuestos, descuentos y portes de envío y coger el total de forma directa sin realizar cálculos. En principio, esto no debería de suponer un problema ya que los datos de impuestos, descuentos y portes de envío sí que estarán guardados en Virtuemart y en la información que se enviará al cliente.
Hola Pablo,
Lo he porbado en local con Awo y luego desinstalando Awo y con los cupones de VM. Algo debo hacer mal porque no me abre la página de Paypal en ninguno de los dos casos. Cuando termino el proceso me devuelve a la página de inicio. ¿Talvez no copio el código donde debo? Empiezo a pegarlo después de:
country."' ORDER BY country_2_code ASC";
$db1->query($q);
Y termino antes de:
"currency_code" => $_SESSION['vendor_currency'], etc
Hola Alceste
Mejor envía el código completo, puedes adjuntar un archivo comprimido con el código para verificarlo.
Saludos.
Hola, te subo el código sin modificar y modificado.
Una duda, En ¿Restar el descuento del pago antes de IVA / Envío? Lo tengo desmarcado. ¿Está bien así o es indiferente?
Por algun lado debéis tener la solución ya que el problema aparece en este post como solucionado.
Saludos
Hola,
Es posible que los valores que he puesto como 0 haya que entrecomillarlos. Prueba a cambiar el código que te pasé antes por el siguiente:
$url = "www.paypal.com/cgi-bin/webscr"; $tax_total = "0"; $discount_total = "0"; $post_variables = Array( "cmd" => "_ext-enter", "redirect_cmd" => "_xclick", "upload" => "1", "business" => PAYPAL_EMAIL, "receiver_email" => PAYPAL_EMAIL, "item_name" => $VM_LANG->_('PHPSHOP_ORDER_PRINT_PO_NUMBER').": ". $db->f("order_id"), "order_id" => $db->f("order_id"), "invoice" => $db->f("order_number"), "amount" => round( $db->f("order_total"), 2), "shipping" => "0",
Hola Pablo,
No se me abre la ventana de Paypal. Me devuelve a la página de inicio. Espero nuevas indicaciones 🙂
Por cierto, tengo un par de dudas relacionadas con esto:
1-En la configuración Global de VirtueMart tengo desmarcada la opción Restar el descuento del pago antes de IVA / Envío ¿Es correcto?
2- El programa de facturación de la empresa aplica los descuentos ANTES de los impuestos. ¿Cómo los aplican los cupones de AWO y de VM, antes o después? ¿Puedo configurarlo para que los aplique ANTES y me coincida con programa de facturación de la empresa?
Saludos y mil gracias