如何从angularjs传递一个条形标记到nodejs或修复错误nodejs后?

我试图设置条纹支付,但遇到了一个错误:TypeError:无法读取未定义的属性“ID”
在/Users/andreykondratyuk/websites/talllly/src/server/app.js:56:37
在Layer.handle [作为handle_request] …

表格:

<form stripe-form="stripeCallback" name="checkoutForm"> <input ng-model="number" placeholder="Card Number" payments-format="card" payments-validate="card" name="card" /> <input ng-model="expiry" placeholder="Expiration" payments-format="expiry" payments-validate="expiry" name="expiry" /> <input ng-model="cvc" placeholder="CVC" payments-format="cvc" payments-validate="cvc" name="cvc" /> <button type="submit">Submit</button> <div ng-if="checkoutForm.card.$invalid"> Error: invalid card number! </div> </form> 

在控制器中

 // Stripe Response Handler $scope.stripeCallback = function (code, result) { console.log(result); if (result.error) { window.alert('it failed! error: ' + result.error.message); } else { // Simple POST request example (passing data) : $http.post('/charge', result) .success(function(data, status, headers, config) { alert(data); }) .error(function(data, status, headers, config) { alert(data); }); } }; 

在后端app.js

 app.post('/charge', function(req, res) { console.log(req); var stripeToken = req.body.token.id; var charge = stripe.charges.create({ amount: 10000, // amount in cents, again currency: "usd", card: stripeToken, description: "email@email.com" }, function(err, charge) { if (err && err.type === 'StripeCardError') { console.log(JSON.stringify(err, null, 2)); } res.send("completed payment!"); }); }); 

我究竟做错了什么?

令牌id在响应主体上是id ,没有由stripe.js调用返回的令牌对象,请检查文档 。

所以在节点你的线路:

 var stripeToken = req.body.token.id; 

应该:

 var stripeToken = req.body.id;