Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*--------------------------------------------------------REQUIRE------------------------------------------*/
- const app = require('express')();
- const request = require('request');
- const bodyParser = require("body-parser");
- const http = require('http');
- let paypal = require('paypal-rest-sdk');
- var mysql = require('mysql');
- var connection = mysql.createConnection({
- host : '',
- user : '',
- password : '',
- database : ''
- });
- let redis = require("redis");
- let client = redis.createClient();
- /*--------------------------------------------------------APP------------------------------------------*/
- app.use((req, res, next) => {
- res.setHeader('Access-Control-Allow-Origin', '*');
- res.setHeader('Access-Control-Allow-Methods', 'GET');
- res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
- res.setHeader('Access-Control-Allow-Credentials', true);
- next();
- });
- app.use(bodyParser.json());
- app.use(bodyParser.urlencoded({ extended: false }));
- /*--------------------------------------------------------ROUTES------------------------------------------*/
- paypal.configure({
- 'mode': 'live', //sandbox or live
- 'client_id': '',
- 'client_secret': ''
- });
- let payment = {
- "intent": "sale",
- "payer": {
- "payment_method": "paypal"
- },
- "redirect_urls": {
- "return_url": "",
- "cancel_url": ""
- },
- "transactions": [{
- "item_list": {
- "items": [{
- "name": "",
- "price": ""
- "currency": "EUR",
- "quantity": ""
- }]
- },
- "amount": {
- "currency": "EUR",
- "total": ""
- },
- "description": ""
- }]
- }
- let createPay = (payment) => {
- return new Promise((resolve , reject) => {
- paypal.payment.create(payment, function(err, payment) {
- if (err) {
- reject(err);
- } else {
- resolve(payment);
- }
- });
- });
- }
- app.get('/getApiUrl', (req, res) => {
- payment.redirect_urls.return_url = '';
- payment.redirect_urls.cancel_url = '';
- payment.transactions[0].item_list.items[0].name = 'Antoine la tchoin';
- payment.transactions[0].item_list.items[0].price = 0.0000001;
- payment.transactions[0].item_list.items[0].quantity = 53;
- payment.transactions[0].amount.total = 0.0000001;
- payment.transactions[0].description = 'pas cher';
- createPay(payment)
- .then((transaction) => {
- let id = transaction.id;
- let links = transaction.links;
- let counter = links.length;
- while (counter--) {
- if (links[counter].method == 'REDIRECT') {
- return res.json({url: links[counter].href, success: true});
- }
- }
- })
- .catch((err) => {
- console.log(err);
- });
- });
- app.post('/successPayment', (req, res) => {
- let paymentId = req.body.paymentId;
- let payerId = {'payer_id': req.body.PayerID};
- paypal.payment.execute(paymentId, payerId, function(error, payment){
- if (error) { //Unvalid Payment
- return res.json({error: error});
- }
- if (payment.state === 'approved'){
- let ARGENT = {user: "zaza", payment: "keh"};
- connection.connect();
- let sql = new Promise((resolve, reject) => {
- connection.query('INSERT INTO eraMoney SET ?', ARGENT, function (error, results, fields) {
- if (error) throw error;
- resolve('sql');
- });
- })
- .catch(err => {
- throw err;
- });
- let _redis = new Promise((resolve, reject) => {
- client.set("key", "value");
- resolve('redis');
- })
- .catch(err => {
- throw err;
- });
- Promise.all([sql, _redis])
- .then(data => {
- console.log(data[0]) // sql
- console.log(data[1]) // redis
- res.json({success: true});
- connection.end();
- });
- } else {
- return res.json({error: true});
- }
- });
- });
- /*--------------------------------------------------------START SERVER------------------------------------------*/
- http.Server(app).listen(4100);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement