martes, 13 de mayo de 2014

paypal ofrece una funcionalidad en extremo útil convocatoria Ipn con la cual podemos interactuar con nuestra propia tenacidad. Básicamente, nos da la perspectiva de beber alternativas en el lance que el gasto haya sido afirmado o perfectamente hacer efecto determinadas costumbres en nuestro boceto si el plazo no fue aceptado.

¿qué Tipo de Sitios Pueden Utilizar Paypal Ipn?

esto es harto alusivo, no obstante podemos mencionar algunos dechados. Digamos que tenemos un cabo en internet adonde vendemos géneros. Habitualmente este tipo de sistemas cuentan con un módulo que nos permite regir las realizaciones o comprobantes de importaciones. Paypal Ipn nos sirve para ejecutar de contratista entre nuestro auténtico sistema de relaciones y el sistema de Paypal.

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

nuestra constancia recibirá esos parámetros y basados en lo que recibimos generamos una suma, actualizamos un stock, notificamos al cliente que el giro fue seductor entre otras influencias. La información de Pago Instantánea se sumamente útil, si no afuera por esta funcionalidad no podríamos compasar nuestra aplicación y tendríamos numeros desactualizados en nuestra almohadilla de documentos. Por ejemplo, podría estrenarse el evento que un cliente aparece con una factura “pendiente” de anticipo cuando efectivamente el cliente pago.

otro buen prototipo de adonde el goce de Ipn es vitalista sería un espacio adonde el cliente necesita de “créditos” para verificar o entrar a determinadas subordinaciones. Por ejemplo: si hablamos de un bloqueo que nos permite despachar Sms online seguramente tendremos que adquirir favores para enviarlos, por ende, es sumamente importante acreditarle brevemente los préstamos al cliente una sucesión que haya verificado el pago.

¿cuáles son los delanteros sainetes para integrar Ipn en mi sitio?

lo auténtico que tienes que producir es obtener a tu relación de Paypal para propiciar la recital de Notificaciones Instantáneas Ipn.
Para ello vamos a “perfil/mis Herramientas de Venta”.

y riberas una mampara adonde podrás configurar muchas disyuntivas, nosotros haremos clic en “notificaciones de préstamo instantáneas”:

marca adonde dice “recibir recados de Ipn”. En el lienzo de compendio de Url conviene dejarlo en plateado si usamos la misma enumeración para diferentes parajes.

una ocasión que esta clase está habilitada estamos dinámicos para circular a la parte de codificación. El ejemplo que utilizaremos será en Php utilizando la estante Curl.

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

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

$payaltest = true; //cambialo a false para efectuar 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 embajadoras 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 humus no fue aceptado por paypal - Estado del Pago: $payment_status"); 		stopprocess(); 	}   	//todo proporcionadamente aun actualmente, la operación ha sido confirmada por ende   puedo llevar a cabo mis profesiones,  	//actualizar Db, stock, encargar balances, apresurar facturas 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 esencial 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 eludir en una variable total todas las obras del script, de este modo   podremos reconocer errors facilmente. function Translog($message) {	 	notify_webmaster($message);	   }   //examina todo el Ipn y lo convierte en una argolla de texto function Array2str($kvsep, $entrysep, $a) { 	$str = ""; 	foreach ($a as $k=>$v) 	{ 		$str .= "{$k}{$kvsep}{$v}{$entrysep}"; 	} 	return $str; }   //para toda la estructura del programa function Stopprocess() { 	exit; }

analizando Nuestro Archivo Ipn

paypal necesita efectuar ciertas comprobaciones antiguamente de enviarnos todos los numeros de la importación. El uso de comprobación consiste en enviarle todos los elementos nuevamente a Paypal tal cual fue recibido. Esto se puede espiar 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 citación “$req”. Recuerda, estas inconstantes fueron representantes por el caballerizo de Paypal. Es bastante importante no fastidiar el montón, 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 criado de Paypal, para lo cual usaremos Curl.

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

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

capturamos la respuesta que nos da el cuidador 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 inseparable habla, “verified” o “invalid”. Que el redundado sea paralítico No significa que el pagaré no fue realizado por parte del cliente. Esto solo significa que por algún origen los grados que enviamos no concuerdan con los originales.

si Paypal nos devuelve “verified”. Esto significa que los méritos fueron representantes de guisa correcta, por ende recibiremos la novedad de la operación a través de variables Post.

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

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

ahora que hemos corroborado el préstamo entonces realizamos nuestras operaciones, actualizamos la pedestal de puntos, stock, acreditamos parné, lustres en la factura del cliente etc etc.

ten presente que este es un simple tutorial de cómo beneficiarse Ipn.

recomendaciones:

• no realices batallas que tomen mucho momento o que consuman abundantes provechos de tu lado web.
• algunas sucesiones Paypal tardanza en tocar al Ipn, puede durar mucho tiempo algunos minutos.

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

]]>



Este post se a creado automaticamente con autoblogger imperium descargalo Gratuito
13 May 2014

0 comentarios:

Publicar un comentario

:) :)) ;(( :-) =)) ;( ;-( :d :-d @-) :p :o :>) (o) [-( :-? (p) :-s (m) 8-) :-t :-b b-( :-# =p~ $-) (b) (f) x-) (k) (h) (c) cheer
Click to see the code!
Inserta Emoticonos para tus Comentarios!!!

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)