簡體   English   中英

如何使用Stripe和Node.js創建費用

[英]How to create charges with Stripe and Node.js

我對Stripe有問題,我在回調中什么都沒得到...

這是我的服務器端:

Stripe.charges.create(
                        {
                            amount: totalCostUSD,
                            currency: 'usd',
                            source: req.body.stripeToken,
                            description: 'Example Charge',
                            metadata: {'order_id': '6735'}
                        }, function (err, charge) {
                    if (err && err.type === "StripeCardError") {
                        return res
                                .status(status.BAD_REQUEST)
                                .json({error: err.toString()});
                    }

                    if (err) {
                        console.log(err);
                        return res
                                .status(status.INTERNAL_SERVER_ERROR)
                                .json({error: err.toString()});
                    }

                    req.user.data.cart = [];

                    req.user.save(function () {
                        return res.json({id: charge.id});
                    });
                });

從我的客戶端,我嘗試發送如下請求:

superagent
   .post(url)
   .send({
   stripeToken: {
            number: '4242424242424242',
            exp_month: 12,
            exp_year: 2017,
            cvc: '123'
               }
                 })
   .end(function (error, res) {
         console.log(error);
        console.log(res.text);
     });

我試圖在服務器和客戶端上登錄回調函數,但未返回任何內容……有人知道這是什么問題嗎?

您完全可以記錄任何日志嗎? 我會嘗試進行一些登錄,以查看可能出了什么問題。

console.log("Ready to create a charge!");

Stripe.charges.create({
    amount: totalCostUSD,
    currency: 'usd',
    source: req.body.stripeToken,
    description: 'Example Charge',
    metadata: {'order_id': '6735'}
  }, function (err, charge) {

    console.log("Entered ChargeCreate Callback Function.");

    if (err && err.type === "StripeCardError") {
      console.log("Encountered Stripe error.");
      return res.status(status.BAD_REQUEST).json({
        error: err.toString()
      });
    }

    if (err) {
      console.log("Encountered unknown error.");
      return res.status(status.INTERNAL_SERVER_ERROR).json({
        error: err.toString()
      });
    }

    req.user.data.cart = [];

    req.user.save(function () {
      console.log("Entered UserSave Callback Function.");
      return res.json({id: charge.id});
    });
  }
);

如果您沒有看到任何日志,則可能無法從Node.js服務器查看stdOut嗎? 您在本地運行嗎?

我發現了問題所在,我的單元測試僅限於在2000毫秒內執行,然后失敗了...

但是要擊中Strip api,需要更多時間來執行...

因此,為了延長執行時間,我將此內容放入了測試中:

it("Can chackout", function (done) {

        this.timeout(15000);
        setTimeout(done, 15000);

暫無
暫無

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

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