将Stripe集成到MeanJs样板

时间:2017-02-10 15:02:49

标签: angularjs node.js express stripe-payments

我是Mean stack的新手,正在使用MeanJS的ver 0.4.2(meanjs.org)。我坚持将Stripe集成到平台上。我正在使用Stripe Angular进行集成。

所以,到目前为止,我已经创建了一个新的控制器。我已经将所需的文件添加到标头中。控制器如下所示:

(function() {
'use strict';
angular
.module('availabilities')
.controller('StripepayController', StripepayController);

StripepayController.$inject = ['$scope', '$http'];

function StripepayController($scope, $http) {
    $scope.saveCustomer = function(status, response) {
         //console.log('striped');
         $http.post('/stripecharge', { token: response.id });
    };
}
})();

我已经按照教程说的创建了一个视图。添加了到模块的服务器路由页面的路由:

// routes for stripe
app.route('/stripecharge')
.all(availabilities.stripePay);

服务器控制器具有以下中间件:

exports.stripePay = function(req, res) {
var stripe = require('stripe')('secret_key');
var token = req.body.stripeToken;
var charge = stripe.charges.create({
    amount: 1000,
    currency: 'usd',
    description: 'Example charge',
    source: token,
}, function(err, charge) {
    // asynchronously called
});
};

令牌正在创建,但我无法为卡充电。关于我如何前进的任何帮助都会很棒。

此外,如果有人能够解释如何在MEANjs中从视图到服务器提交表单。我无法理解这一点。

提前致谢。

2 个答案:

答案 0 :(得分:1)

经过大量研究并回到课程后,我终于解决了这个问题。感谢@floatingLomas的帮助。

我实际上错过了服务器控制器中条带节点模块的引用。这是我的服务器现在的样子 -

exports.stripePay = function(req, res) {
    var token = req.body.token; // Using Express
    // Charge the user's card:
    var charge = stripe.charges.create({
        amount: 1000,
        currency: 'usd',
        description: 'Example charge',
        source: token,
    }, function(err, charge) {
        if (err) {
            res.send(500, err);
        } else {
            res.send(204);
        }
    });
};

在快速控制器的顶部,我添加了

var stripe = require('stripe')('My_Secret_key');

由于缺少节点模块,我收到了控制台中未定义的'stripe'错误。使用

添加了条带节点模块
npm install --save stripe

现在一切似乎都变得轻而易举。

答案 1 :(得分:0)

您需要在Angular应用中使用Stripe.jsCheckout,然后将生成的令牌POST到您的Node.js端点。