我试图在我的MEAN堆栈应用程序中集成条带。它没有与Stripe通信来接收令牌。我不确定为什么。
我的index.html页面中有条带源代码,用于我的角度应用程序。
没有与Stripe通信接收令牌,console.log永远不会填充,所以我知道它由于某种原因没有与Stripe通信,但是相同的源代码在独立应用程序中与Stripe通信。我也相信它在发送服务器端时失败了。我试图将此请求从端口3000发送到端口8082.
然后我在我的应用程序中的另一个HTML页面中有以下脚本:
Stripe.setPublishableKey('pk_test_******************');
var $btn = $('#submit');
$btn.on('click', function() {
$btn.prop('disabled', true);
$btn.button('progress');
var cardNum = $('#card-num').val();
var cardExp = $('#card-exp').val().split('/');
var cardCVC = $('#card-cvc').val();
// First submit the card information to Stripe to get back a token
console.log("starting stripe token");
Stripe.card.createToken({
number: cardNum,
exp_month: cardExp[0],
exp_year: cardExp[1],
cvc: cardCVC
}, function(status, response) {
var $form = $('#form');
var token = response.id;
console.log(response.id);
// Save the token into a hidden input field
$form.append($('<input type="hidden" name="stripeToken" />').val(token));
// Now submit the form to our server so it can make the charge against the token
$.post("http://localhost:8082/charge", $form.get(0), function(res) {
console.log("response from charge: " + res);
});
// All done!
$btn.addClass('btn-success').removeClass('btn-primary');
$btn.button('success');
setTimeout(function() {
$('#checkout').modal('hide');
}, 250);
});
return false;
});
我看到启动条带令牌的console.log响应,但它实际上并没有与stripe通信。
然后这是我的服务器端代码:
app.post('/charge', function(req, res) {
// Connect to the db
MongoClient.connect("mongodb://localhost:27017/meanAuth", function(err, db) {
if(!err) {
console.log("We are connected");
}
});
var stripeToken = req.body.stripeToken;
var amount = 1000;
stripe.charges.create({
card: stripeToken,
currency: 'usd',
amount: amount
},
function(err, charge) {
if (err) {
res.send(500, err);
} else {
res.send(204);
}
});
});
我这样做的原因是我尝试将请求中的用户信息发送到服务器端代码,以便服务器可以更新Mongo数据库中的值。
我需要帮助!提前致谢