﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>onestic &#187; paypal</title>
	<atom:link href="http://onestic.com/tag/paypal/feed/" rel="self" type="application/rss+xml" />
	<link>http://onestic.com</link>
	<description>Estrategia y desarrollo ecommerce</description>
	<lastBuildDate>Mon, 21 May 2012 08:21:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Magento, PayPal, IPN, las contrabarras (backslashes) y respuesta INVALID</title>
		<link>http://onestic.com/magento-paypal-ipn-las-contrabarras-backslashes-y-respuesta-invalid/</link>
		<comments>http://onestic.com/magento-paypal-ipn-las-contrabarras-backslashes-y-respuesta-invalid/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 16:02:45 +0000</pubDate>
		<dc:creator>Manel R. Domenech</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[Invalid]]></category>
		<category><![CDATA[IPN]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[paypal]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=1051</guid>
		<description><![CDATA[Existe un pequeño problema en Magento con la validación de la respuesta IPN de PayPal. Ocurre incluso con el código de ejemplo para PHP4 del propio PayPal. Más que un problema se trata de una condición de error no contemplada. Esta condición ocurre cuando en algún campo del formulario de pago aparece el carcater contrabarra [...]]]></description>
			<content:encoded><![CDATA[<p>Existe un pequeño problema en Magento con la validación de la respuesta IPN de PayPal. Ocurre incluso con el código de ejemplo para PHP4 del propio PayPal. Más que un problema se trata de una condición de error no contemplada. Esta condición ocurre cuando en algún campo del formulario de pago aparece el carcater contrabarra o backslash (\) y la opción de PHP magic_quotes_gpc está desactivada. Esta opción está marcada como obsoleta desde PHP 5.3 y suele encontrarse desactivada en la mayoría de las distribuciones actuales.</p>
<p>El problema está en utilizar la función stripslashes sobre el valor de los campos del formulario de pago que PayPal devuelve mediante el método POST. Si magic_quotes_gpc no está activada y se aplica stripslashes sobre los valores cualquier contrabarra desaparecerá o, más bien, se convertirá en un escapado del siguiente caracter. Y como al hacer el post back para verificar el pago PayPal espera recibir exactamente los mismos valores que ha enviado previamente, se recibirá un INVALID por resupuesta.</p>
<p>No es un problema grave, pero algunos usuarios de habla hispana abrevian calle como C\ (aunque la norma es hacerlo al revés, C/), y en estos casos el pago se realizará pero fallará su validación.</p>
<p>¿Cómo corregir esto? Bien NO haciendo el stripslashes o bien haciendo previamente un addslashes si magic_quotes_gpc está desactivado.</p>
<p>Para el código de ejemplo de PayPal:</p>
<p>Original:</p>
<pre class="brush: php; title: ; notranslate">...
foreach ($_POST as $key =&gt; $value) {
 $value = urlencode(stripslashes($value));
 $req .= &quot;&amp;$key=$value&quot;;
}
...</pre>
<p>Solución 1:</p>
<pre class="brush: php; title: ; notranslate">...
foreach ($_POST as $key =&gt; $value) {
 $value = get_magic_quotes_gpc()?stripslashes($value):$value;
 $value = urlencode($value);
 $req .= &quot;&amp;$key=$value&quot;;
}
...</pre>
<p>Solución 2a:</p>
<pre class="brush: php; title: ; notranslate">...
foreach ($_POST as $key =&gt; $value) {
 $value = get_magic_quotes_gpc()?$value:addslashes($value);
 $value = urlencode(stripslashes($value));
 $req .= &quot;&amp;$key=$value&quot;;
}
...</pre>
<p>Solución 2b:</p>
<pre class="brush: php; title: ; notranslate">...
foreach ($_POST as $key =&gt; $value) $_POST[$key] = get_magic_quotes_gpc()?$value:addslashes($value);

foreach ($_POST as $key =&gt; $value) {
 $value = urlencode(stripslashes($value));
 $req .= &quot;&amp;$key=$value&quot;;
}
...</pre>
<p>Para Magento hay que hacer algo análogo en el código de verificación. En la versión 1.5 puede encontrarse en el fichero</p>
<pre class="brush: plain; title: ; notranslate">app/code/local/Onestic/PaypalIpnFixSlash/Model/Ipn.php</pre>
<p>, en el método _postBack. en versiones anteriores este código está en</p>
<pre class="brush: plain; title: ; notranslate">app/code/core/Mage/Paypal/Model/Standard.php</pre>
<p>, en el método ipnPostSubmit.</p>
<p>Si no se desea tocar el código fuente de Magento, para la versión 1.5 se incluye este pequeño módulo <a href='http://onestic.com/wp-content/uploads/2011/04/Onestic_PaypalIpnFixSlash.tgz'>Onestic_PaypalIpnFixSlash</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/magento-paypal-ipn-las-contrabarras-backslashes-y-respuesta-invalid/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configuracion de Paypal Express con Magento</title>
		<link>http://onestic.com/configuracion-de-paypal-express-con-magento/</link>
		<comments>http://onestic.com/configuracion-de-paypal-express-con-magento/#comments</comments>
		<pubDate>Fri, 01 May 2009 10:50:37 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[paypal]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=214</guid>
		<description><![CDATA[Para configurar el módulo de pago de Paypal con Magento tendremos que realizar los siguientes los pasos:]]></description>
			<content:encoded><![CDATA[<p>Para configurar el módulo de pago de Paypal con Magento tendremos que realizar los siguientes los pasos:</p>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/configuracion-de-paypal-express-con-magento/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

