Conectando PayPal con una Hoja de Cálculo de Google mediante Apps Scripts

Conectando PayPal con una Hoja de Cálculo de Google mediante Apps Scripts
Conectando PayPal con una Hoja de Cálculo de Google mediante Apps Scripts

Un día más volvemos para presentaros un nuevo snippet, a la vez que abrimos una nueva plataforma / herramienta a tratar. Como veis, cada vez estamos ampliando aún más el abanico de servicios que podréis automatizar para ser más eficientes, ya sea en el ámbito laboral (para engañar a los jefes y tocarlos el ombligo a dos manos) o en ámbito personal para ser más productivos (esto de la productividad también se puede aplicar al trabajo, pero a no ser que os paguen más dependiendo de vuestra producción, más vale trabajar menos y tener más tiempo libre :P).

Bueno, idas de olla aparte, hoy vamos a presentar un snippet con el que podréis conectar vuestra cuenta de Paypal con una Hoja de Cálculo de Google. Para los que tengáis algún tipo de negocio y Paypal sea uno de los métodos de pago que soportáis, os va a venir genial, puesto que tenemos conocidos que están pagando 20 euros mensuales a plataformas como Zapier para hacer lo mismo que os vamos a presentar aquí, y que podréis montar de forma gratuita y en muy poco tiempo.

Entrando en materia, para poder conectar vuestra cuenta de paypal con cualquier cosa (en este caso las Hojas de Cálculo de Google), lo primero que tendréis que hacer entrar en: https://developer.paypal.com 

Una vez aquí, hacéis click donde pone “Login to Dashboard”, se os abrirá para entrar en vuestra cuenta de paypal. Introducís vuestros credenciales y accedéis.

Conectando PayPal con una Hoja de Cálculo de Google mediante Apps Scripts

Tras acceder, os aparecerá el panel que vamos a poner en la foto que encontraréis debajo de este párrafo. Allí tendréis que hacer click donde pone Create App.

Conectando PayPal con una Hoja de Cálculo de Google mediante Apps Scripts: Creando la App

Ahora tendréis que elegir el nombre para vuestra app, y le dais a Create App.

Conectando PayPal con una Hoja de Cálculo de Google mediante Apps Scripts: Confirmar creación de la App

Una vez hagáis esto, se os abrirá la siguiente página en la que veréis los Secretos para poder manejar la api (primera captura) y abajo del todo (segunda captura) está la parte en la que estableceremos el webhook (no se si os acordaréis de esta palabra, pero los que seáis consumidores de nuestro contenida la habéis visto en otro artículos como registrar conversaciones de Telegram en una Hoja de Cálculo) con el que recibiremos de forma automática e instantánea los datos de Paypal. 

Conectando PayPal con una Hoja de Cálculo de Google mediante Apps Scripts

Bueno, una vez que os explicado por encima esto de Paypal para desarrolladores, aquí tenemos el Snippet que vamos a utilizar:

var spreadsheeturl = 'https://docs.google.com/spreadsheets/d/esto-son-datos-imventados/edit#gid=0';
var paypalsheetname = 'paypal';
var emailaddress = 'el_correo@gmail.com';
var emailsubject = 'correo de pruebas paypal';




var ss = SpreadsheetApp.openByUrl(spreadsheeturl);
var shpaypal = ss.getSheetByName(paypalsheetname);

var shpaypallastrow = shpaypal.getLastRow();
var shpaypallastcolumn = shpaypal.getLastColumn();
if (shpaypallastrow > 0 && shpaypallastcolumn > 1){
  var shpaypaldatarange = shpaypal.getRange(1, 1, shpaypallastrow, shpaypallastcolumn);
  var shpaypaldata = shpaypaldatarange.getValues();
}





function doPost(e) {
  var datamejor = JSON.stringify(e.parameter, null, 4);
  //GmailApp.sendEmail(emailaddress, emailsubject, datamejor);
  
  var newnewrowrow = [];
  if (shpaypaldata !== undefined){
    for (var i in shpaypaldata[0]){
      newnewrowrow.push(e.parameter[shpaypaldata[0][i]]);
    }
    shpaypal.appendRow(newnewrowrow);
  }
}

Tras presentar el snippet, como siempre y aún a riesgo de que nos consideréis los tíos más pesados del mundo, recomendamos para aquellos usuarios que sea la primera vez que van a utilizar Google Apps Script, la lectura de nuestras introducciones: Introducción al Manejo de Google Apps Script y Registrar Conversaciones de Telegram en una Hoja de Cálculo de Google con Apps Script (esta última por el hecho de que trabajamos al igual que aquí con las aplicaciones web de Google Apps Script y Webhooks).

Una vez dicho esto, para empezar con la implantación, lo primero que tenemos que hacer es modificar los siguientes parámetros:

  • spreadsheeturl: escribimos entre las comillas la url de la hoja de cálculo en la que deseamos que se anoten las transacciones de paypal.
  • paypalsheetname: ponemos el nombre de la hoja en la que se anotarán las transacciones de paypal (es necesario que la creéis vosotros a priori)
  • emailaddress: Introduce la dirección de email a la que deseéis que os lleguen las pruebas. 
  • emailsubject: esto es el asunto del correo de pruebas. 

Una vez hayáis realizado las sustituciones correspondientes, el siguiente paso será generar la aplicación web como ya hemos hecho otras veces, haciendo click en Publicar -> Implementar como aplicación web. Guardad el enlace de la aplicación web.

Tras esto, volvemos a la web de paypal developers (es probable que os haya caducado la sesión puesto que caduca rapidísimo :P), hace click en la parte izquierda, en IPN SIMULATOR. Allí, introducid la url de la aplicación web que acabáis de generar, elegid un tipo de transacción y marcad para que os envíe todo los datos posibles. Finalmente haced click en Send IPN que estará abajo del todo.

Conectando PayPal con una Hoja de Cálculo de Google mediante Apps Scripts: Ir a IPN Simulator
Conectando PayPal con una Hoja de Cálculo de Google mediante Apps Scripts: Introduciendo los datos de la aplicación web

Os llegará un email a la dirección de correo electrónico que hayáis seleccionado con chorrocientas cosas, con el siguiente formato: 

{
   "payer_email": "buyer@paypalsandbox.com",
   "receiver_email": "seller@paypalsandbox.com",
   "mc_gross_1": "12.34",
   "payer_status": "verified",
   "address_country_code": "US",
   "receiver_id": "seller@paypalsandbox.com",
   "address_state": "CA",
   "item_number": "AK-1234",
   "address_name": "John Smith",
   "address_status": "confirmed",
   "residence_country": "US",
   "txn_id": "145538016",
   "test_ipn": "1",
   "shipping": "3.04",
   "verify_sign": "AObqYIXz6iwCuqFOZsfAbEK7crLbAdxMF5I9uckFGgZz-JmL6HUuGxN0",
   "first_name": "John",
   "payment_date": "21:49:36 Dec 22, 2019 PST",
   "quantity": "1",
   "business": "seller@paypalsandbox.com",
   "address_country": "United States",
   "payment_status": "Completed",
   "custom": "xyz123",
   "last_name": "Smith",
   "item_name": "something",
   "tax": "2.02",
   "notify_version": "2.1",
   "mc_currency": "USD",
   "address_city": "San Jose",
   "payment_type": "instant",
   "txn_type": "web_accept",
   "address_street": "123 any street",
   "payer_id": "TESTBUYERID01",
   "address_zip": "95131",
   "invoice": "abc1234",
   "mc_fee": "0.44",
   "mc_gross": "12.34"
}

Cada una de estas cosas es uno de los parámetros que paypal nos proporciona. No vamos a explicarlos todos, puesto que cada uno tiene que ver los parámetros que va a necesitar en función de los datos que quiera registrar automáticamente, pero como ejemplo diremos que por ejemplo: 

 “payer_email”: “buyer@paypalsandbox.com”,

payer_email se corresponde con el correo del pagador.

De esta forma, el Snippet que os hemos compartido está creado para que recopile los datos en función de lo que pongáis en la primera fila de la hoja en la que hayáis elegido que se anoten las transacciones. Por ejemplo, si ponéis en la primera fila celda de la primera columna “payer_email” (sin las comillas), cuando recibáis una transacción, en esta columna, se generará una fila en la que aparecerá el email del pagador que ha realizado la transacción. Ilustrándolo con una imagen: 

Conectando PayPal con una Hoja de Cálculo de Google mediante Apps Scripts: Hoja de Cálculo

Una vez que tengáis claro lo que queréis que se anote y tengáis las cabeceras de la tabla lista, haced otra prueba, y si todo se apunta, podéis hacer que deje de enviaros un email por cada transacción escribiendo delante de la siguiente línea dos barras tal que asi //. (recordar que para que se apliquen los cambios es necesario volver a publicar la aplicación web)

//GmailApp.sendEmail(emailaddress, emailsubject, datamejor);
Conectando PayPal con una Hoja de Cálculo de Google mediante Apps Scripts: Comentando el Código

Para finalizar, solo basta con que lo montéis en entorno real, que para ello, basta con que volváis de nuevo a https://developer.paypal.com/developer/applications/ y allí hagáis click en vuestra aplicación de paypal, e introduzcáis la url de la aplicación web de Google Apps Script haciendo click al fondo de la página en Add Webhook, como podéis ver en la siguiente imagen:

Conectando PayPal con una Hoja de Cálculo de Google mediante Apps Scripts: Cambiando de Entorno

Ahí, introducís el enlace de vuestra aplicación como ya he comentado antes, y os recomiendo marcar todas las opciones.

Conectando PayPal con una Hoja de Cálculo de Google mediante Apps Scripts: Finalizando

Finalmente basta con que os aseguréis de que la vuestra aplicación de whatsapp está en modo live, haciendo click en live, puesto que algunas veces, lo mismo necesitaréis confirmar vuestro correo electrónico o cualquier otra cosa.

Bueno, ¡¡finalmente hemos acabado!! Nos ha salido el tutorial más largo de la cuenta, pero esperamos que os haya gustado. 

¡¡Un saludo y hasta la próxima!!

  1. Hola! estoy intentando hacer este ejercicio para ir aprendiendo y no hay manera. IPN me da todo el rato este mensaje: IPN was not sent, and the handshake was not verified. Review your information.

    Gracias!

    1. Hola Miguel

      Si echas un vistazo aquí: https://www.paypal-community.com/t5/PayPal-Reporting/Not-receiving-any-IPN-messages-from-IPN-simulator/m-p/1175969#M21, o en google, indica que es un error que da el simulador. Y en dicho artículo explica que el error es intermitente y se debe a que PayPal está haciendo cambios. Con lo que se pasará en cuanto PayPal haya terminado de implementar sus cambios. Vuelve a probar dentro de un rato o mañana.

    1. Como te comenté el otro día, es tema de PayPal que está haciendo alteraciones. Acabo de entrar al developer de paypal y en la parte superior tienen este aviso:
      Error en el modo de pruebas de paypal

      Por lo que seguirá sin funcionar hasta que terminen con los cambios que estén realizando.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir Archivos a Gdrive (Google Drive) a Través de Telegram con Google Apps Scripts
A continuación:

Subir Archivos a Gdrive (Google Drive) a Través de Telegram con Google Apps Scripts

Subir Archivos a Gdrive (Google Drive) a Través de Telegram con Google Apps Scripts