martes, 11 de marzo de 2014

paypal ofrece una funcionalidad altamente útil indicación Ipn con la cual podemos interactuar con nuestra propia aplicación. Básicamente, nos da la decisión de comer audacias en el trance que el sueldo haya sido comprobado o correctamente operar determinadas prácticas en nuestro software si el gasto no fue aceptado.

¿qué Tipo de Sitios Pueden Utilizar Paypal Ipn?

esto es en gran medida alusivo, sin embargo podemos mentar algunos ejemplos. Digamos que tenemos un emplazamiento en internet adonde vendemos géneros. Habitualmente este tipo de sistemas cuentan con un módulo que nos permite dosificar las ejecuciones o comprobantes de consumiciones. Paypal Ipn nos sirve para hacer de contratista entre nuestro oficial estilo de sumas y el método de Paypal.

entonces, si el abono del cliente fue placentero o prohibido podemos decirle a Paypal que haga una indicación a nuestra diligencia “haciéndole saber” lo que ha pasado, esto se conoce como “callback”. Mediante esta citación Paypal envía una gama de parámetros a través del Post o el Get con los resultados de la operación.

nuestra insistencia recibirá esos parámetros y basados en lo que recibimos generamos una factura, actualizamos un stock, notificamos al cliente que el plazo fue lisonjero entre otras actividades. La muestra de Pago Instantánea se sumamente útil, si no afuera por esta funcionalidad no podríamos compasar nuestra perseverancia y tendríamos documentos desactualizados en nuestra colchoneta de numeros. Por ejemplo, podría estrenarse el episodio que un cliente aparece con una estructura “pendiente” de sueldo cuando en verdad el cliente pago.

otro buen modelo de adonde el usufructo de Ipn es optimista sería un paraje adonde el cliente necesita de “créditos” para efectuar o entrar a determinadas subordinaciones. Por ejemplo: si hablamos de un aislamiento que nos permite cursar Sms online seguramente tendremos que cazar brillos para enviarlos, por ende, es sumamente importante acreditarle sucintamente los realces al cliente una sucesión que haya hecho el pago.

¿cuáles son los antiguos escalones para integrar Ipn en mi sitio?

lo anterior que tienes que trabajar es alinear a tu cuentecilla de Paypal para vigorizar la clasificación de Notificaciones Instantáneas Ipn.
Para ello vamos a “perfil/mis Herramientas de Venta”.

y orillas una visera adonde podrás configurar muchas alternativas, nosotros haremos clic en “notificaciones de plazo instantáneas”:

marca adonde dice “recibir recados de Ipn”. En el óleo de vademécum de Url conviene dejarlo en nevado si usamos la misma enumeración para diferentes sedes.

una sucesión que esta clase está habilitada estamos prestos para concertar a la parte de codificación. El tipo que utilizaremos será en Php utilizando la papelería Curl.

primer Paso:
Creamos un clasificador php “escucha” o “listener” el cual recibirá las muestras desde el cuidador de Paypal.

vamos a ponerle paypalipn.php, el cual contendrá el subsiguiente código:

$payaltest = true; //cambialo a false para proceder importaciones reales, de lo contrario utiliza sandbox.   $req = 'cmd=_notify-validate'; $fullipna = array();   foreach ($_post as $key => $value) { 	$fullipna[$key] = $value;   	$encodedvalue = urlencode(stripslashes($value)); 	$req .= "&$key=$encodedvalue"; }   $fullipn = Array2str(" : ", "\n", $fullipna);   if (!$payaltest)  { 	$url ='https://www.paypal.com/cgi-bin/webscr';	   }else{	   	$url ='https://www.sandbox.paypal.com/cgi-bin/webscr'; 	   }   $curl_result=$curl_err=''; $fp = curl_init(); curl_setopt($fp, Curlopt_url,$url); curl_setopt($fp, Curlopt_returntransfer,1); curl_setopt($fp, Curlopt_post, 1); curl_setopt($fp, Curlopt_postfields, $req); curl_setopt($fp, Curlopt_httpheader, array("content-type: application/x-www-form-urlencoded", "content-length: " . strlen($req))); curl_setopt($fp, Curlopt_header , 0);  curl_setopt($fp, Curlopt_verbose, 1); curl_setopt($fp, Curlopt_ssl_verifypeer, false); curl_setopt($fp, Curlopt_timeout, 30);   $response = curl_exec($fp); $curl_err = curl_error($fp); curl_close($fp);     // Variables legadas por Paypal $item_name = $_post['item_name']; $item_number = $_post['item_number']; $payment_status = $_post['payment_status']; $payment_amount = $_post['mc_gross']; $payment_currency = $_post['mc_currency']; $txn_id = $_post['txn_id']; $receiver_email = $_post['receiver_email']; $payer_email = $_post['payer_email']; $txn_type = $_post['txn_type']; $pending_reason = $_post['pending_reason']; $payment_type = $_post['payment_type']; $custom_key = $_post['custom'];     if (strcmp ($response, "verified") == 0)		 { 	// Verifico el estado de la orden 	if ($payment_status != "completed") 	{ 		translog("el gasto no fue aceptado por paypal - Estado del Pago: $payment_status"); 		stopprocess(); 	}   	//todo admisiblemente inclusive actualmente, la adquisición ha sido confirmada por ende   puedo verificar mis ocupaciones,  	//actualizar Db, stock, glorificar balances, vigorizar enumeraciones etc etc       	Translog("pago Correcto - $fullipn"); //notifico al webmaster     }else{ //la importación es invalida No se puedo cobrarle al cliente.   	 Translog("pago Inválido - $fullipn"); }   //función imprescindible para las notificaciones function notify_webmaster($message) { 	$subject="nuevo Pago"; 	$remite="tu-email"; 	$remitente="tu remitente";   	$header .="mime-version: 1.0\n";  	$header .= "content-type: text/html; charset=iso-8859-1\n";  	$header .="from: ".$remitente."<".$remite.">\n"; 	$header .="return-path: ". $remite."\n"; 	$header .="x-mailer: Php/". phpversion()."\n";   	mail("email-aqui-de-quiren-recibe", $subject, $message,$header);   }   //esta funcion puede gastar como recoger en una variable popular todas las influencias del script, de este modo   podremos escudriñar errors facilmente. function Translog($message) {	 	notify_webmaster($message);	   }   //examina todo el Ipn y lo convierte en una prisión de texto function Array2str($kvsep, $entrysep, $a) { 	$str = ""; 	foreach ($a as $k=>$v) 	{ 		$str .= "{$k}{$kvsep}{$v}{$entrysep}"; 	} 	return $str; }   //para toda la elaboración del programa function Stopprocess() { 	exit; }

analizando Nuestro Archivo Ipn

paypal necesita actuar ciertas verificaciones atrás de enviarnos todos los numeros de la operación. El estilo de demostración consiste en enviarle todos los documentos nuevamente a Paypal tal cual fue recibido. Esto se puede adivinar en las primeras líneas del Ipn.

mediante al conveniencia en tirabuzón Foreach recorremos todas las variables que se encuentran en el Post y las ponemos en una variable llamada “$req”. Recuerda, estas colgantes fueron delegadas por el palafrenero de Paypal. Es asaz importante no encolerizar el rango, tenemos que enviarlas tal cual las recibimos.

$req = 'cmd=_notify-validate'; $fullipna = array();   foreach ($_post as $key => $value) { 	$fullipna[$key] = $value;   	$encodedvalue = urlencode(stripslashes($value)); 	$req .= "&$key=$encodedvalue"; }   $fullipn = Array2str(" : ", "\n", $fullipna);

una sucesión que tenemos listo lo de las variables es hora de enviarlas al lacayo de Paypal, para lo cual usaremos Curl.

la Url que utilizamos para repasar operaciones reales va a ser “’https://www.paypal.com/cgi-bin/webscr”, entretanto que para operaciones de evidencia utilizaremos Sandbox ‘https://www.sandbox.paypal.com/cgi-bin/webscr’.

les prometo un artículo distinto de Sanbox en granos días.

capturamos la respuesta que nos da el lacayo de Paypal en la variable “$response”.

  if (!$payaltest)  { 	$url ='https://www.paypal.com/cgi-bin/webscr';	   }else{	   	$url ='https://www.sandbox.paypal.com/cgi-bin/webscr'; 	   }   $curl_result=$curl_err=''; $fp = curl_init(); curl_setopt($fp, Curlopt_url,$url); curl_setopt($fp, Curlopt_returntransfer,1); curl_setopt($fp, Curlopt_post, 1); curl_setopt($fp, Curlopt_postfields, $req); curl_setopt($fp, Curlopt_httpheader, array("content-type: application/x-www-form-urlencoded", "content-length: " . strlen($req))); curl_setopt($fp, Curlopt_header , 0);  curl_setopt($fp, Curlopt_verbose, 1); curl_setopt($fp, Curlopt_ssl_verifypeer, false); curl_setopt($fp, Curlopt_timeout, 30);   $response = curl_exec($fp); $curl_err = curl_error($fp); curl_close($fp);

paypal nos responderá con una simple voz, “verified” o “invalid”. Que el redundado sea destrozado No significa que el fertilizante no fue realizado por parte del cliente. Esto solo significa que por algún lugar los alcances que enviamos no concuerdan con los originales.

si Paypal nos devuelve “verified”. Esto significa que los corajes fueron embajadores de faceta correcta, por ende recibiremos la consultoría de la operación a través de variables Post.

las subsiguientes líneas de reglamento controlan que solo se siga ejecutando el Ipn si el estado del gasto es “”completed””:

if ($payment_status != "completed") 	{ 		translog("el desembolso no fue aceptado por paypal - Estado del Pago: $payment_status"); 		stopprocess(); 	}

ahora que hemos garantizado el anticipo entonces realizamos nuestras compras, actualizamos la peana de factores, stock, acreditamos capital, préstamos en la escala del cliente etc etc.

ten presente que este es un inseparable tutorial de cómo vestir Ipn.

recomendaciones:

• no realices influencias que tomen mucho periodo o que consuman copiosos memoriales de tu lado web.
• algunas ocasiones Paypal tardanza en nominar al Ipn, puede atrasarse algunos minutos.

espero que este tutorial de cómo implementar Paypal Ipn en tu emplazamiento les sea útil.

]]>



Este post se a creado automaticamente con autoblogger imperium descargalo Gratuito

0 comentarios:

Publicar un comentario

Famosos

#empleo (350) 10 (13) 500 millones (6) Academia (6) acuerdo empresarial (13) aeroespacial (9) aeronáutica (23) alestis-aeroespace (1) allplan (6) Alquiler de aulas (4) Análisis de elementos finitos (11) Android (8) animación (1) animaciones (14) arquitectos técnicos (7) arquitectura (35) Artículos (33) ASP.NET 2.0 (14) audiencia nacional (7) aulas tecnológicas (4) aumento de la rentabilidad (17) AutoCAD (8) automatizar pago (3) automoción (6) Avanzado (44) bases de datos (32) bbodb (1) becarios (1) betabeers (3) BIM (6) bitacoras (5) Blender (1) blog (3) Blogs (48) Bolsa de empleo (15) Bolsa de trabajo (9) Bono regalo (9) buffer (6) buongiorno (7) burlington english (7) C# (13) c++ (14) cableados estructurados (5) Cádiz (5) calzado (7) cambiar status (3) carnet de carretillero (342) carnet puente-grúa (342) carrito (4) Catia (7) CATIA V5 (16) CE3x (11) celebración (6) CentOS (39) CERMA (11) Certificación energética (2) Certificación Energética de Edificios (5) Certificación Energética de Edificios grandes y del sector terciario (7) Certificación Energética de Edificios Residenciales (6) cetec andalucía (31) clase (6) Clase gratuita sevilla (1) Clases particulares (5) CMS (28) colaboración empresarial (6) colaboraciones (6) Community Manager (4) complicados (14) Composites (1) compra online (4) configurar pc (11) consejos (10) CONVOCUM (6) córdoba (32) correo (15) css (5) curl (10) curso (11) Cursos (62) cursos técnicos (5) Decoración (1) deidos (2) delineantes (9) denuncia (7) desarrolladores (6) Desarrollo de Aplicaciones (7) Desarrollo de Aplicaciones con tecnología Android (2) desarrollo web (6) descuento (5) día de andalucía (5) dimensiones (7) Diseño (8) diseño 3D (12) Diseño de Interiores (11) Diseño de materiales compuestos (1) Diseño de Mecánica Industrial (7) Diseño Gráfico (8) Diseño Industrial (24) Diseño web (40) diseño y aplicaciones (7) diseño y programación (11) dispositivos móviles (7) dominio (2) Drupal (28) Ebooks (14) ecommerce (3) El look de la semana (2) email (5) empleo (5) Emprendedores (65) emprender (1) Emprendimiento verde (5) empresa (20) english for engineer (3) estafa (7) etiquetas básicas (2) Eventos (42) éxito (1) facebook (13) feedly (6) ferroviario (5) fibra óptica (14) fopen (7) formacion (6) Formación (418) formación para empresas (23) Formación Sevilla (18) fundamentos (5) Fundamentos de Fibra Óptica (5) gamers (1) Ganador sorteo (5) gdgdevfest (2) Gestión de stock y almacén (342) gmail (14) google (14) gratuito (5) Hibernate (14) historias de facebook (6) hotlinking (1) htaccess (1) html (5) ifttt (6) Industrial (5) informática (9) ingenieria (9) Ingeniería (19) Ingenieria de Software (14) ingeniería en informática (14) ingenieros (14) Ingenieros y Cádiz (4) Ingenieros y delineantes (19) Ingles para ingenieros (7) inicial (56) instalación (9) instalador (10) internet (42) Iphone (14) ipn (3) itc (5) J2EE (14) Java (29) Java Script (4) javascript (17) jefe de proyecto (5) jerez de la frontera (11) Joomla 1.5.x (7) jQuery (4) Juegos (19) lean manufacuring (20) Lenguajes (28) lenguajes de programacion (27) Libros (14) macosx (2) madrid (5) maltor (4) marketing online (28) Máster Catia V.5 (7) mejora de la producción (17) modelo (7) motivacion (10) móvil (1) MySql (38) Negocios por Internet (4) niños (14) oferta (5) Oferta de empleo (5) oferta de empleo. (1) Off-Topic (11) ofimática (5) online (7) Otros temas (39) outlook (1) pago (3) pagos (3) pagos recurrentes (4) Pascal (14) paypal (10) PCI (6) perfil (3) perseverancia (1) php (103) PHPClasses (6) PLSQL (13) plugins (14) posicionamiento (5) PostgreSQL (14) prácticas profesionales (9) premios (5) Prevención de incendios (6) problemas (7) Procesadores de Pago (3) programación (68) Programacion Internet (14) Programacion Logica (14) Programacion Web (13) programadores (8) proyectistas. (5) Python (42) Redes inalámbricas (7) redes sociales (20) Redes Wi-Fi: Fundamentos (7) refuerzo (5) router.php (7) Ruby on Rails (14) sef url (7) seguidores (3) seguridad (7) SEO (9) seoveinte (1) sesión (7) sesiones personalizadas (5) Sevilla (93) Sevilla Centro (14) shopping cart (4) Sistemas de Cableados Estructurados en edificios ICT (5) sistemas operativos (6) Skype (7) smtp (4) Social Media (19) software (14) software libre (1) sql import (6) startup (9) startup weekend (6) Struts (14) subscriciones (4) swf (7) sysmana (5) técnico (14) técnicos de la fabricación y el montaje (6) técnicos fabricación y montaje (17) Tecnología (23) tedx (4) Test de satisfacción (1) tienda virtual (4) Tips (76) Todas llevan (1) truco (3) trucos (3) tutorial (4) twitter (4) UML (27) unipimus (6) url amigables (7) vender por internet (3) venta online (7) virtuemart 2.0.6 (7) webmast (1) wifi y wimax (5) wordpress (41) wpodb (5) youtube (2) zapatería (7) Zapatop.com (7)