2016-03-03 58 views
0

我的堆棧: 前端:反應, react-stripe module 後端:用的NodeJS快遞4.x的條紋支付與節點JS

我一直在下面的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]': '[email protected]', 
    'card[tokenization_method]': '', 
    client_ip: '12334567', 
    created: '1457075159', 
    email: '[email protected]', 
    livemode: 'false', 
    type: 'card', 
    used: 'false' } 
+0

does request.body.id work? –

+0

一個條紋電荷需要一個有一個關鍵的對象:'源'(像你一樣)。對應於該鍵的值可以是標記(字符串)或卡(對象)。你正在加入'req.body'。 'req.body'永遠是一個對象。因爲它看到一個對象,所以期待它有鑰匙:'number' – cdbajorin

+0

@cdbajorin所以我要如何更改我的代碼才能使它工作在條紋方式 –

回答

1

req.body是整個令牌對象,但條紋只想令牌對象的id,從而設置源req.body.id應該修復它。