Giter Club home page Giter Club logo

microservice_paypal_orders_express's Introduction

Index app

Microservice_PayPal_Integration_ExpressJs

Microservicio para la integración de Paypal implementado con ExpressJs, Nodejs, Typescript, nodemon, morgan, dotenv, cors, etc.

Documentación

Códigos de integración Paypal

Pasos Paypal

  1. Crear cuenta en la app de paypal (btn Login in dashboard)
  2. Ver o actualizar credenciales de usuario
  3. Click en btn crear app para validar registro, keys, realizar la integración, etc
  4. Ingresar al dashboard y ver la app creada con credenciales. Ingresar a la app para ejecuciones en el entorno sandbox.
  5. Copiar ClientId y secret key de usuario app en archivo .env para interactuar con la api de paypal
PAYPAL_API_CLIENT = "AY6UZg4..."
PAYPAL_API_SECRET_KEY ="EJMm8IN..."
PAYPAL_API_SANDBOX_URL = "https://sandbox.paypal.com"
  1. Visualizar cuentas sandbox
  2. Recursos de la api de paypal
  3. Obtener un access token para las operaciones con curl
curl -v -X POST "https://api-m.sandbox.paypal.com/v1/oauth2/token"\
 -u "CLIENT_ID:CLIENT_SECRET"\
 -H "Content-Type: application/x-www-form-urlencoded"\
 -d "grant_type=client_credentials"

Obtener un access token para las operaciones desde postman

    Set the verb to POST.
    Enter https://api-m.sandbox.paypal.com/v1/oauth2/token as the request URL.
    Select the Authorization tab.
    From the TYPE list, select Basic Auth.
    In the Username field, enter your client ID.
    In the Password field, enter your client secret.
    Select the Body tab.
    Select the x-www-form-urlencoded option.
    In the KEY field, enter grant_type.
    In the VALUE field, enter client_credentials.
    Select Send.
  • Response
{

  "scope": "https://uri.paypal.com/services/invoicing https://uri.paypal.com/services/disputes/read-buyer https://uri.paypal.com/services/payments/realtimepayment https://uri.paypal.com/services/disputes/update-seller https://uri.paypal.com/services/payments/payment/authcapture openid https://uri.paypal.com/services/disputes/read-seller https://uri.paypal.com/services/payments/refund https://api-m.paypal.com/v1/vault/credit-card https://api-m.paypal.com/v1/payments/.* https://uri.paypal.com/payments/payouts https://api-m.paypal.com/v1/vault/credit-card/.* https://uri.paypal.com/services/subscriptions https://uri.paypal.com/services/applications/webhooks",

  "access_token": "A21AAFEpH4PsADK7qSS7pSRsgzfENtu-Q1ysgEDVDESseMHBYXVJYE8ovjj68elIDy8nF26AwPhfXTIeWAZHSLIsQkSYz9ifg",

  "token_type": "Bearer",

  "app_id": "APP-80W284485P519543T",

  "expires_in": 31668,

  "nonce": "2020-04-03T15:35:36ZaYZlGvEkV4yVSz8g6bAKFoGSEzuy3CQcz3ljhibkOHg"

}

Índice 📜

Ver

Sección 1) Descripción, configuración y tecnologías.

Sección 2) Endpoints y Ejemplos

Sección 3) Prueba de funcionalidad y Referencias



Sección 1) Descripción, configuración y tecnologías.

1.0) Descripción 🔝

Ver

1.0.0) Descripción General

1.0.1) Descripción Arquitectura y Funcionamiento


1.1) Ejecución del Proyecto 🔝

Ver

1.1.0) Configuraciones iniciales

  • Una vez creado un entorno de trabajo a través de algún ide, clonamos el proyecto
git clone https://github.com/andresWeitzel/Module_PayPal_Integration_ExpressJs
  • Nos posicionamos sobre el proyecto
cd 'projectName'
  • Instalamos la última versión LTS de Nodejs(v18).
  • Instalamos todas las librerías necesarias
npm i
  • Las variables de entorno utilizadas en el proyecto se mantienen para simplificar el proceso de configuración de las mismas. Es recomendado agregar el archivo correspondiente (.env) al .gitignore.
  • El siguiente script configurado en el package.json del proyecto es el encargado de
    • Levantar el servidor con express (entorno productivo)
    • Levantar el servidor con express y nodemon (entorno local dev)
"scripts": {
   "dev": "nodemon src/server.js",
   "start": "node src/server.js"
 },
  • Ejecutamos la app desde terminal para entorno local.
npm run dev
  • Ejecutamos la app desde terminal para entorno productivo.
npm start
  • Si se presenta algún mensaje indicando qué el puerto 8080 ya está en uso, podemos terminar todos los procesos dependientes y volver a ejecutar la app
npx kill-port 8080
npm run dev o npm start


1.2) Configuración del proyecto desde cero 🔝

Ver
  • Una vez creado un entorno de trabajo a través de algún ide, clonamos el proyecto
git clone https://github.com/andresWeitzel/Module_PayPal_Integration_ExpressJs
  • Nos posicionamos sobre el proyecto
cd 'projectName'
  • Instalamos la última versión LTS de Nodejs(v18)
  • Abrimos una terminal desde vsc
  • Inicializamos un proyecto nodejs
npm init
  • Creamos un archivo .gitignore y agregamos los files necesarios (por el momento node_modules)
node_modules
  • Creamos un direct source (src) para agregar toda la lógica de nuestra app
  • Instalamos el paquete para el uso de Nodejs con Typescript
npm i --save-dev @types/node
  • Instalamos lo necesario para usar typescript
# Locally in your project.
npm install -D typescript
npm install -D ts-node

# Or globally with TypeScript.
npm install -g typescript
npm install -g ts-node

# Depending on configuration, you may also need these
npm install -D tslib @types/node
npm i --save-dev @types/express
npm i express
npm i --save-dev @types/cors
npm i cors
npm i --save-dev @types/dotenv
npm i morgan @types/morgan
npm i -g nodemon
npm i nodemon
  • Las variables de entorno utilizadas en el proyecto se mantienen para simplificar el proceso de configuración de las mismas. Es recomendado agregar el archivo correspondiente (.env) al .gitignore.
  • El siguiente script configurado en el package.json del proyecto es el encargado de
    • Levantar el servidor con express (entorno productivo)
    • Levantar el servidor con express y nodemon (entorno local dev)
"scripts": {
   "start": "node src/server.ts",
   "start:dev": "nodemon src/server.ts"
 },
  • Ejecutamos la app desde terminal para entorno local.
npm run start:dev
  • Ejecutamos la app desde terminal para entorno productivo.
npm start
  • Si se presenta algún mensaje indicando qué el puerto 8080 ya está en uso, podemos terminar todos los procesos dependientes y volver a ejecutar la app
npx kill-port 8080
npm run start:dev o npm start

1.3) Comandos de utilidad 🔝

Ver

1.4) Tecnologías 🔝

Ver

| Tecnologías | Versión | Finalidad |
| ------------- | ------------- | ------------- | | NodeJS | 14.18.1 | Librería JS | | Typescript | 3.8.3 | Lenguaje con alto tipado basado en JS | | VSC | 1.72.2 | IDE | | Postman | 10.11 | Cliente Http | | CMD | 10 | Símbolo del Sistema para linea de comandos | | Git | 2.29.1 | Control de Versiones |


| Extensión |
| ------------- | | Prettier - Code formatter | | Typescript Toolbox - generate setters, getters, constrc, etc | | Otras |



Sección 2) Endpoints y Ejemplos.

2.0) Endpoints y recursos 🔝

Ver

2.1) Ejemplos 🔝

Ver


Sección 3) Prueba de funcionalidad y Referencias.

3.0) Prueba de funcionalidad 🔝

Ver

3.1) Referencias 🔝

Ver

Documentación

Códigos de integración Paypal

Herramientas

Remark


microservice_paypal_orders_express's People

Contributors

andresweitzel avatar dependabot[bot] avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.