如何将条带令牌从 angularjs 传递到 nodejs 或修复错误 nodejs 帖子

How do I pass a stripe token from angularjs to nodejs or fix error nodejs post?

本文关键字:nodejs 帖子 错误 令牌 angularjs      更新时间:2023-09-26

我正在尝试设置条纹付款,但遇到错误:类型错误:无法在 Layer.handle [作为handle_request]读取/Users/andreykondratyuk/websites/talllly/src/server/app.js:56:37   
处未定义的
   属性"id"。

形式:

<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);
    });
      }
  };

在后端应用上.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,条带没有返回令牌对象.js调用,检查文档。

所以在节点你的行:

var stripeToken = req.body.token.id;

应该是:

var stripeToken = req.body.id;