miércoles, 7 de mayo de 2014

paypal ofrece una funcionalidad asaz útil intimación Ipn con la cual podemos interactuar con nuestra propia diligencia. Básicamente, nos da la opción de ocupar resoluciones en el acontecimiento que el pagaré haya sido estudiado o correctamente realizar determinadas prácticas en nuestro esbozo si el anticipo no fue aceptado.

¿qué Tipo de Sitios Pueden Utilizar Paypal Ipn?

esto es bastante tocante, sin embargo podemos colegir algunos canones. Digamos que tenemos un punto en internet adonde vendemos artículos. Habitualmente este tipo de sistemas cuentan con un módulo que nos permite atesorar las hechuras o comprobantes de importaciones. Paypal Ipn nos sirve para desempeñarse de contratista entre nuestro lícito estilo de sumas y el sistema de Paypal.

entonces, si el gasto del cliente fue atrayente o vedado podemos decirle a Paypal que haga una indicación a nuestra aplicación “haciéndole saber” lo que ha sucedido, esto se conoce como “callback”. Mediante esta convocatoria Paypal envía una hilera de parámetros a través del Post o el Get con los resultados de la operación.

nuestra aplicación recibirá esos parámetros y basados en lo que recibimos generamos una factura, actualizamos un stock, notificamos al cliente que el préstamo fue atrayente entre otras actividades. La muestra de Pago Instantánea se sumamente útil, si no afuera por esta funcionalidad no podríamos acompasar nuestra aplicación y tendríamos puntos desactualizados en nuestra pedestal de numeros. Por ejemplo, podría acudir el lance que un cliente aparece con una realización “pendiente” de gasto cuando positivamente el cliente pago.

otro buen prototipo de adonde el sistema de Ipn es primordial sería un cerco adonde el cliente necesita de “créditos” para efectuar o penetrar a determinadas actuaciones. Por ejemplo: si hablamos de un lugar que nos permite expedir Sms online seguramente tendremos que desembolsar apogeos para enviarlos, por ende, es sumamente importante acreditarle brevemente los valimientos al cliente una sucesión que haya efectuado el pago.

¿cuáles son los auténticos peldaños para integrar Ipn en mi sitio?

lo exterior que tienes que actuar es ganar a tu tabla de Paypal para vivificar la subordinación de Notificaciones Instantáneas Ipn.
Para ello vamos a “perfil/mis Herramientas de Venta”.

y orillas una mampara adonde podrás configurar muchas dilemas, nosotros haremos clic en “notificaciones de emolumento instantáneas”:

marca adonde dice “recibir avisos de Ipn”. En el suceso de tomo de Url conviene dejarlo en albero si usamos la misma cuentecilla para diferentes lugares.

una ocasión que esta representación está habilitada estamos despabilados para patear a la parte de codificación. El ejemplo que utilizaremos será en Php utilizando la imprenta Curl.

primer Paso:
Creamos un anaquel php “escucha” o “listener” el cual recibirá las notas desde el caballerizo de Paypal.

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

$payaltest = true; //cambialo a false para llevar a cabo adquisiciones 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 delegadas 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 anticipo no fue aceptado por paypal - Estado del Pago: $payment_status"); 		stopprocess(); 	}   	//todo proporcionadamente incluso ya, la operación ha sido confirmada por ende   puedo verificar mis laboras,  	//actualizar Db, stock, raciocinar cómputos, vigorizar cuentecillas 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 central 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 atesorar en una variable común todas las batallas del script, de esta forma   podremos acosigar errors facilmente. function Translog($message) {	 	notify_webmaster($message);	   }   //examina todo el Ipn y lo convierte en una andana de texto function Array2str($kvsep, $entrysep, $a) { 	$str = ""; 	foreach ($a as $k=>$v) 	{ 		$str .= "{$k}{$kvsep}{$v}{$entrysep}"; 	} 	return $str; }   //para toda la lapidación del programa function Stopprocess() { 	exit; }

analizando Nuestro Archivo Ipn

paypal necesita llevar a cabo ciertas comprobaciones de antemano de enviarnos todos los aspectos de la adquisición. El razonamiento de comprobación consiste en enviarle todos los numeros nuevamente a Paypal tal cual fue recibido. Esto se puede percibir en las primeras líneas del Ipn.

mediante al explotación en tirabuzón Foreach recorremos todas las variables que se encuentran en el Post y las ponemos en una variable llamada “$req”. Recuerda, estas opcionales fueron representantes por el cuidador de Paypal. Es asaz importante no embravecer el género, 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 ocasión que tenemos listo lo de las variables es hora de enviarlas al criado de Paypal, para lo cual usaremos Curl.

la Url que utilizamos para experimentar adquisiciones reales va a ser “’https://www.paypal.com/cgi-bin/webscr”, mientras tanto que para adquisiciones de indagación utilizaremos Sandbox ‘https://www.sandbox.paypal.com/cgi-bin/webscr’.

les prometo un artículo mero 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 ofrenda, “verified” o “invalid”. Que el terminado sea atrofiado No significa que el préstamo no fue realizado por parte del cliente. Esto solo significa que por algún descargo los desplantes que enviamos no concuerdan con los originales.

si Paypal nos devuelve “verified”. Esto significa que los arrojos fueron mandatarios de manera correcta, por ende recibiremos la consultoría de la compra a través de variables Post.

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

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

ahora que hemos observado el plazo entonces realizamos nuestras operaciones, actualizamos la colchoneta de documentos, stock, acreditamos oro, empréstitos en la factura del cliente etc etc.

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

recomendaciones:

• no realices obras que tomen mucho plazo o que consuman rebosantes recursos de tu emplazamiento web.
• algunas sucesiones Paypal prórroga en nombrar al Ipn, puede demorar algunos minutos.

espero que este tutorial de cómo implementar Paypal Ipn en tu punto 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)