forked from vmundra/WebDownloader
-
Notifications
You must be signed in to change notification settings - Fork 0
/
payment.js
94 lines (76 loc) · 2.55 KB
/
payment.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
const express = require('express');
const router = express.Router();
var crypto = require('crypto');
const { isAuthenticated, unauthorised } = require('../config/auth_required');
const bodyParser = require('body-parser');
const Razorpay = require("razorpay");
var User = require('../models/user');
const Post = require('../models/post');
const instance = new Razorpay({
key_id : process.env.KEY_ID,
key_secret : process.env.KEY_SECRET
});
router.get("/payments/:id/:id2",(req,res)=>{
var rid= req.params.id;
var postId = req.params.id2;
console.log(rid);
console.log(postId);
Post.findOne({"posts._id": postId},{posts:{ $elemMatch:{_id:postId}}},function(err,result){
if(err){
console.log(err);
}
else{
var payAmount = result.posts[0].cost;
res.render("payment",{key: process.env.KEY_ID,rid:rid,payAmount:payAmount,currentUser: req.user,pid:postId});
}
});
});
router.post("/api/payment/order",(req,res)=>{
params = req.body;
console.log(params);
instance.orders
.create(params)
.then((data)=>{
res.send({sub:data, status:"success"});
})
.catch((error)=>{
res.send({sub:error,status:"failed"});
});
});
router.post("/api/payment/verify",(req,res)=>{
body = req.body.razorpay_order_id + "|" + req.body.razorpay_payment_id;
var expectedSignature = crypto
.createHmac("sha256",process.env.KEY_SECRET)
.update(body.toString())
.digest("hex");
console.log("sig" + req.body.razorpay_signature);
console.log("sig" + expectedSignature);
//console.log("hii inside payment");
var response = {status : "failure"};
var rid = req.body.rid;
var pid = req.body.pid;
var amt = req.body.amt;
var amt1 = parseInt(amt*0.75);
if(expectedSignature === req.body.razorpay_signature)
{
response = {status : "success"};
User.findOneAndUpdate({"_id":rid},{$inc:{rewards:amt1}},{new:true},function(err,res){
if(err) console.log(err);
console.log(res);
});
//console.log(pid);
Post.findOneAndUpdate({ "posts._id": pid },{$set:{
'posts.$.paymentDone': true,
}},
{new:true},function(err,post){
if(err){
console.log(err);
}
else{
//console.log(post);
res.redirect('/');
}
});
}
});
module.exports = router;