如何从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;