2016-07-11 2 views
1

Heroku의 모바일 웹 응용 프로그램에 대해 Parse-Server 인스턴스를 실행하고 있습니다. 내 문제는 스트라이프 체크 아웃 플러그인이 내 HTML 페이지에서 제대로 작동하지만 토큰이 만들어지고 클라우드 코드를 호출 할 때 변수 초기화 스트라이프를 만드는 것이 아무 것도하지 않는 것처럼 보입니다. 이것이 내 클라우드 코드입니다.구문 분석 서버 코드 및 스트라이프

var stripe = require('stripe')('sk_test_******'); 
Parse.Cloud.define("pay", function(req, res){ 
    Parse.Cloud.useMasterKey(); 
    var token = req.params.token; 
    var amount = req.params.amount; 
    var email = req.params.email; 
    // stripe is null 
    res.success(stripe); 
}); 

이 값을 호출하면 stripe 값이 null이며 이유를 알 수 없습니다. 내 package.json 파일에 '~ 4.7.0'이라는 줄무늬를 추가했으며 npm install을 실행하여 모든 노드 모듈을 로컬로 만들었습니다. 이 차이가 있는지 모르겠지만 내하는 index.js 파일에 내가 라우터

app.use('/', express.static(path.join(__dirname, '/public'))); 

는 공용 디렉토리에이 방법을 파일에 액세스 할 수 쉽기 때문

을 만들었습니다. 그렇지 않으면 내가 그 파일을 포함하고 싶을 때마다 공개 디렉토리에서/public/filename을 사용하여 파일을 참조해야합니다. 어떤 도움이라도 대단히 감사 할 것입니다.

+0

"지불"기능 안에'var stripe'을 옮깁니다. 현재이 방법으로 사용하고 있으며 작동합니다. – Santhosh

+0

나는 그저 아무 쓸모가 없어 보았습니다. 왠지 이유로 클라우드 코드에서 스트라이프를 초기화 할 수 없습니다. 나는 색인으로 그것을 할 수있다.그래도. 처음에 package.json에 포함 된 다른 패키지는 초기화 할 수 있지만 내가 추가 한 패키지는 초기화 할 수 없습니다. – thailey01

답변

0

클라우드 코드에서이 청구를 실행하는 것을 포기했습니다. 대신 index.js 파일에 '/ charge'라는 경로를 만들고 jQuery 게시글을 사용하여 호출했습니다. 여기하는 index.js 내 코드는

var handler = StripeCheckout.configure({ 
    key: 'pk_test_****', 
    locale: 'auto', 
    token: function(token){ 
     $.post('/charge', { 
      token: token.id, 
      amount: total, 
     }, function(data, status){ 
      alert(data); 
     }); 
    } 
}); 
2

내가 오늘이 문제를 가지고

내가 시행 착오를했다, 여기에 내가 무엇을 기억한다

다음
var stripe = require('stripe')('sk_test_****'); 
var bodyParser = require('body-parser'); 
app.use(bodyParser.urlencoded({ 
    extended: false 
})); 
app.post('/charge', function(req, res){ 
    var token = req.body.token; 
    var amount = req.body.amount; 
    stripe.charges.create({ 
     amount: amount, 
     currency: 'usd', 
     source: token, 
    }, function(err, charge){ 
     if(err) 
      // Error check 
     else 
      res.send('Payment successful!'); 
    } 
}); 

내 jQuery를 요청입니다

https://www.npmjs.com/package/stripe < - 내가

에서 클라우드 코드를 가지고 이잖아 명령 프롬프트를 통해 구문 분석 서버의 루트 디렉토리에
    1. 난 다음 실행 - NPM 내가 package.json에 스트라이프 의존성을 추가 한 후
    2. 스트라이프 설치 "(이 스택 오버 플로우 후 누락 된 키이었다) 스트라이프 ":"~ 4.9.0 "

    Parse.Cloud.define (이하 클라우드 코드는"충전 "기능 (요청, 응답) {

    var stripe = require('stripe')('sk_test_****'); 
    
    stripe.customers.create({ 
        email: theEmailAddress 
    }).then(function(customer) { 
        return stripe.charges.create({ 
        amount: yourAmount, 
        currency: yourCurrency, 
        card: yourToken, 
        description: yourDescription 
        }); 
    }).then(function(charge) { 
        // New charge created on a new customer 
    }).catch(function(err) { 
        // Deal with an error 
    }); 
    
    0123을

    });

    앱을 통해 코드를 클라우드
  • 사용
      을하고

    그래서이 '돌파구는'온 (대시 보드에서 확인해야합니다) 당신의 스트라이프 대시 보드에서 작동하는지 확인 나는 package.json에 의존성으로 스트라이프를 추가하고 또한 당신은 var stripe = require

    이 대답은 원래 게시 한 다음 게시물을 참조 클라우드 코드 기능 안에있는 것을 볼 수있을 때

    Require modul not working when I migrate from parse to heroku