簡體   English   中英

使用Node JS進行條帶化支付

[英]Stripe payment with node js

我的堆棧:前端:react, react-stripe模塊后端:帶有Express 4.x的nodejs

我一直在關注https://stripe.com/docs/charges上的示例

這是我的前端代碼,它在用戶單擊“付款”后觸發:

  onToken(token){
    console.log("Token " , token);
    $.post('/apicall', token, function(result){
      console.log(result);
    })
  }

這是我的服務器代碼,它接收數據並應處理測試付款:

router.post('/payment/barf-complete', function(req, response, next){
  console.log(req.body);
  var stripeToken = req.body;

  var charge = stripe.charges.create({
    amount: 1990, // amount in cents, again
    currency: "eur",
    source: stripeToken,
    description: "Example charge"
    }, function(err, charge) {
    if (err && err.type === 'StripeCardError') {
      // The card has been declined
      console.log(err);
    }
  });
});

我不得不更改var stripeToken = request.body.stripeToken; 進入var stripeToken = request.body; 因為第一個變量聲明一直未定義。

現在的問題是,在前端完成付款后,我一直在服務器上收到以下錯誤消息:

rawType: 'card_error',
code: 'invalid_number',
param: 'number',
message: 'The card object must have a value for \'number\'.',

我以前從未使用過付款系統,並且文檔沒有為我提供任何有用的信息-:/

有什么想法可能會錯過嗎?

編輯這是request.body的console.log:

{ id: 'tok_123456789',
  object: 'token',
  'card[id]': 'card_123456789',
  'card[object]': 'card',
  'card[address_city]': '',
  'card[address_country]': '',
  'card[address_line1]': '',
  'card[address_line1_check]': '',
  'card[address_line2]': '',
  'card[address_state]': '',
  'card[address_zip]': '',
  'card[address_zip_check]': '',
  'card[brand]': 'Visa',
  'card[country]': 'US',
  'card[cvc_check]': 'pass',
  'card[dynamic_last4]': '',
  'card[exp_month]': '1',
  'card[exp_year]': '2017',
  'card[funding]': 'credit',
  'card[last4]': '4242',
  'card[name]': 'noa@mail.com',
  'card[tokenization_method]': '',
  client_ip: '12334567',
  created: '1457075159',
  email: 'noa@mail.com',
  livemode: 'false',
  type: 'card',
  used: 'false' }

req.body是整個令牌對象,但是Stripe只需要令牌對象的id ,因此將source設置為req.body.id應該可以解決它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM