2017-12-29 15 views
0

노드 js와의 지불 트랜잭션을 처리 할 간단한 서버를 작성하고 있습니다. 나는 heroku 프로젝트 템플릿을 시작하고 "checkout"라우트 로직을 추가했습니다. 내가 localhost에 배포했을 때 그것은 나에게 잘 돌아갔다. 하지만 heroku 서버에 배포 한 후에 "POST/체크 아웃 할 수 없음"오류가 발생합니다. 내하는 index.js 코드는 다음과 같다 :노드 js : heroku에 POST 오류가 없습니다.

const express = require('express'), bodyParser = require('body-parser'); 
const path = require('path') 
const PORT = process.env.PORT || 5000 
var router = express.Router(); 
var checkout = require('./routes/checkout'); 
var braintree = require('braintree'); 
const app = express() 
.use(express.static(path.join(__dirname, 'public'))) 
.set('views', path.join(__dirname, 'views')) 
.set('view engine', 'ejs') 
.get('/', (req, res) => res.render('pages/index')) 

.use(bodyParser.urlencoded({extended: true})) 
.post('/checkout', (req, res) => { 
    console.log(req.body.paymentMethodNonce); 
    //res.send(req.body); 

    var gateway = braintree.connect({ 
            environment: braintree.Environment.Sandbox, 
            merchantId: "merchantId", 
            publicKey: "publicKey", 
            privateKey: "privateKey" 
            }); 


    // Use the payment method nonce here 
    //console.log(req.body); 
    var nonceFromTheClient = req.body.paymentMethodNonce; 
    var amount = req.body.amount; 
    //Create a new transaction for $10 
       var newTransaction = gateway.transaction.sale({ 
                  //amount:'10.00', 
                  amount: amount, 
                  //paymentMethodNonce: "fake-valid-nonce", 
                  paymentMethodNonce: nonceFromTheClient, 
                  options: { 
                  // This option requests the funds from the transaction 
                  // once it has been authorized successfully 
                  submitForSettlement: true 
                  } 
                  }, function(error, result) { 
                  if (result) { 
                  res.send(result); 
                  } else { 
                  res.status(500).send(error); 
                  } 
                  }); 


    }) 
    .listen(PORT,() => console.log(`Listening on ${ PORT }`)) 
+0

어떤 종류의 오류가 있습니까? –

+0

체크 아웃 경로 (https://radiant-journey-93290.herokuapp.com/checkout)에 대해 @AkimBenchiha 404가 있지만 루트에 대해이 오류가 표시되지 않습니다. https://radiant-journey-93290.herokuapp.com –

+0

'.get ('/ checkout', (req, res) => {...})'가 없습니까? 보여 주실 수 있어요 ? –

답변

0

당신은

+0

좀 더 자세히 설명해 주시겠습니까? 예 : 코드 예제 제공 – Ward

-1
const express = require('express'); 
const bodyParser = require('body-parser'); 
var checkout = require('./routes/checkout'); 
var braintree = require('braintree'); 
const path = require('path') 
const PORT = process.env.PORT || 5000 
var router = express.Router(); 
const app = express(); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({extended: false})); 


app.use(express.static(path.join(__dirname, 'public'))); 
app.set("views", (__dirname + "/views")); 
app.set("view engine", "ejs"); 

app.get('/', (req, res) => res.render('pages/index')) 
app.post('/checkout', (req, res) => { 

    console.log(req.body.paymentMethodNonce); 

    var gateway = braintree.connect({ 
     environment: braintree.Environment.Sandbox, 
     merchantId: "merchantId", 
     publicKey: "publicKey", 
     privateKey: "privateKey" 
    }); 

    var nonceFromTheClient = req.body.paymentMethodNonce; 
    var amount = req.body.amount; 

    //Create a new transaction for $10 
    var newTransaction = gateway.transaction.sale({ 
      //amount:'10.00', 
      amount: amount, 
      //paymentMethodNonce: "fake-valid-nonce", 
      paymentMethodNonce: nonceFromTheClient, 
      options: { 
      // This option requests the funds from the transaction 
      // once it has been authorized successfully 
      submitForSettlement: true 
      } 
     }, function(error, result) { 
       if (result) { 
        res.send(result); 
       } else { 
        res.status(500).send(error); 
       } 
      } 
    ) 
}); 
0

문제는 다음 명령을 다시 배포 및 실행 한 후 해결 된 후 방법 후 정적 파일을 사용할 수 있습니다 @Elena :

heroku login 
heroku git:clone -a repository_name 

소스 코드를 가지고 있던 코드로 대체하십시오 (변경 사항은 없지만 node_modules 폴더 제외)

관련 문제