Advertisement
Guest User

Untitled

a guest
May 14th, 2018
462
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.11 KB | None | 0 0
  1. /*--------------------------------------------------------REQUIRE------------------------------------------*/
  2.  
  3. const app = require('express')();
  4. const request = require('request');
  5. const bodyParser = require("body-parser");
  6. const http = require('http');
  7. let paypal = require('paypal-rest-sdk');
  8. var mysql = require('mysql');
  9. var connection = mysql.createConnection({
  10. host : '',
  11. user : '',
  12. password : '',
  13. database : ''
  14. });
  15. let redis = require("redis");
  16. let client = redis.createClient();
  17.  
  18. /*--------------------------------------------------------APP------------------------------------------*/
  19.  
  20. app.use((req, res, next) => {
  21. res.setHeader('Access-Control-Allow-Origin', '*');
  22. res.setHeader('Access-Control-Allow-Methods', 'GET');
  23. res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
  24. res.setHeader('Access-Control-Allow-Credentials', true);
  25. next();
  26. });
  27.  
  28. app.use(bodyParser.json());
  29. app.use(bodyParser.urlencoded({ extended: false }));
  30.  
  31. /*--------------------------------------------------------ROUTES------------------------------------------*/
  32.  
  33. paypal.configure({
  34. 'mode': 'live', //sandbox or live
  35. 'client_id': '',
  36. 'client_secret': ''
  37. });
  38.  
  39. let payment = {
  40. "intent": "sale",
  41. "payer": {
  42. "payment_method": "paypal"
  43. },
  44. "redirect_urls": {
  45. "return_url": "",
  46. "cancel_url": ""
  47. },
  48. "transactions": [{
  49. "item_list": {
  50. "items": [{
  51. "name": "",
  52. "price": ""
  53. "currency": "EUR",
  54. "quantity": ""
  55. }]
  56. },
  57. "amount": {
  58. "currency": "EUR",
  59. "total": ""
  60. },
  61. "description": ""
  62. }]
  63. }
  64.  
  65. let createPay = (payment) => {
  66. return new Promise((resolve , reject) => {
  67. paypal.payment.create(payment, function(err, payment) {
  68. if (err) {
  69. reject(err);
  70. } else {
  71. resolve(payment);
  72. }
  73. });
  74. });
  75. }
  76.  
  77. app.get('/getApiUrl', (req, res) => {
  78. payment.redirect_urls.return_url = '';
  79. payment.redirect_urls.cancel_url = '';
  80. payment.transactions[0].item_list.items[0].name = 'Antoine la tchoin';
  81. payment.transactions[0].item_list.items[0].price = 0.0000001;
  82. payment.transactions[0].item_list.items[0].quantity = 53;
  83. payment.transactions[0].amount.total = 0.0000001;
  84. payment.transactions[0].description = 'pas cher';
  85.  
  86. createPay(payment)
  87. .then((transaction) => {
  88. let id = transaction.id;
  89. let links = transaction.links;
  90. let counter = links.length;
  91. while (counter--) {
  92. if (links[counter].method == 'REDIRECT') {
  93. return res.json({url: links[counter].href, success: true});
  94. }
  95. }
  96. })
  97. .catch((err) => {
  98. console.log(err);
  99. });
  100. });
  101.  
  102. app.post('/successPayment', (req, res) => {
  103. let paymentId = req.body.paymentId;
  104. let payerId = {'payer_id': req.body.PayerID};
  105.  
  106. paypal.payment.execute(paymentId, payerId, function(error, payment){
  107. if (error) { //Unvalid Payment
  108. return res.json({error: error});
  109. }
  110. if (payment.state === 'approved'){
  111. let ARGENT = {user: "zaza", payment: "keh"};
  112. connection.connect();
  113.  
  114. let sql = new Promise((resolve, reject) => {
  115. connection.query('INSERT INTO eraMoney SET ?', ARGENT, function (error, results, fields) {
  116. if (error) throw error;
  117.  
  118. resolve('sql');
  119. });
  120. })
  121. .catch(err => {
  122. throw err;
  123. });
  124. let _redis = new Promise((resolve, reject) => {
  125. client.set("key", "value");
  126.  
  127. resolve('redis');
  128. })
  129. .catch(err => {
  130. throw err;
  131. });
  132.  
  133. Promise.all([sql, _redis])
  134. .then(data => {
  135. console.log(data[0]) // sql
  136. console.log(data[1]) // redis
  137. res.json({success: true});
  138. connection.end();
  139. });
  140. } else {
  141. return res.json({error: true});
  142. }
  143. });
  144. });
  145.  
  146. /*--------------------------------------------------------START SERVER------------------------------------------*/
  147.  
  148. http.Server(app).listen(4100);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement