2012-07-24 18 views
11

Así que he implementado IPN de PayPal en mi sitio y estoy en el medio del proceso de trabajo . Ahora quiero utilizar la variable más de 1 personalizada en forma pp Actualmente estoy usando éste sóloPaypal IPN procesa más de una variable personalizada

<input type="hidden" name="custom" value="<?php echo $user_id; ?>"> 

así que sé la variable con 'costumbre' el nombre está permitido. Quiero saber si puedo pasar más variables para poder filtrar los pagos según sus criterios. Así que si, por ejemplo, el envío es más a $ 0.00 fijo una "shipping_cost" variable de la siguiente manera:

<input type="hidden" name="shipping_cost" value="<?php echo $cost; ?>"> 

o para otros fines. Está permitido? ¿O PayPal tiene una lista ya definida de las variables permitidas que podemos usar? Realmente quiero resolver este problema ya que no siempre hay un tipo de pago que podamos procesar ... Gracias chicos.

Respuesta

4

Como yo (y muchos otros imagino) también estoy enfrentando este problema, pensé en compartir algunas de las soluciones que encontré.

This one planteado en la Comunidad de PayPal, sugiere el uso de las variables de opción que parecen ofrecer una implementación de par clave/valor para facilitar hasta 99 vars (para el registro no lo he intentado).

La solución más comúnmente aceptada (que también estoy a favor) es agregar todos sus datos a un registro de base de datos, luego usar la var personalizada para almacenar su identificación de registro, que obviamente puede usarse más tarde (por ejemplo, a través de IPN) para recupera tus datos

3

PayPal define qué campos puede usar here. Cualquier otro campo será ignorado.

Hay un campo 'envío' definido, y PayPal utilizará el valor de ese campo para cobrar un monto adicional por el envío. También podrá obtener ese valor de los datos de IPN o PDT.

Si necesita pasar otros valores, podría considerar pasar una cadena formateada en el estilo de cadena de consulta (var1 = value1 & var2 = value2 ...) en el campo 'personalizado'. Tenga en cuenta que la cantidad máxima de caracteres permitidos en este campo es 256. A continuación, analizará esto cuando obtenga la respuesta IPN o PDT.

Si el tamaño del campo personalizado es demasiado limitado, entonces puede probar lo que describí en otro answer here.

+0

Realmente decepcionante. Tuve que jugar con otras variables permitidas de PayPal para lograr mi intención. Usé el nombre y la descripción del producto. Aunque gracias por su respuesta. – inrob

+1

¿Estás seguro de que no puedes usar "custom2"? Estoy revisando un código heredado y vi un formulario con "personalizado" y "personalizado2" como campos que se envían a Paypal. – CMCDragonkai

8

esta manera se puede pasar más parámetros

<input type="hidden" name="custom" value="variable1=234&var2=summa&etc=xyz"/> 

utilizar la de arriba en el formulario de paypal.

y proceden a través del siguiente código.

parse_str($_POST['custom'],$_MYVAR); 

echo $_MYVAR['variable1']; 
echo $_MYVAR['var2']; 
echo $_MYVAR['etc']; 

espero que este te ayude.

+0

Buen método gracias. – inrob

+0

También puede enviar sus datos personalizados como JSON (convertido desde el tipo de datos PHP usando 'json_encode ($ data)') y luego recuperarlo usando 'json_decode ($ _ POST ['custom'])'. –

+0

Esta es una gran solución. Gracias +1 –

Cuestiones relacionadas