Stripe node.js - StripeAuthenticationError

Car*_*amo 7 node.js stripe-payments reactjs

我正在使用 Nodejs 和 ReactJS 在 Web 应用程序中实现条纹支付。

如果我在 localhostm 上测试我的付款,一切正常!但是,如果我在http://beta.mywebsite.com上推送相同的代码,我会在服务器端收到此错误。客户端一切似乎都有效..

信息:

尽管您确实将授权标头设置为“null”,但您没有提供 API 密钥。使用承载身份验证,您的授权标头应类似于“Authorization: Bearer YOUR_SECRET_KEY”。有关详细信息,请参阅https://stripe.com/docs/api#authentication ,或者我们可以通过https://support.stripe.com/提供帮助


服务器端

const stripeClient = stripe('sk_test*************')
stripeClient.setApiVersion('2017-06-05')

const Stripe = {
  pay (payload) {
    return new Promise((resolve, reject) => {
      if (!payload || !isObject(payload)) throw new BadCreateRequest('Stripe: pay. Unexpected parameters.')

      let { user, total, token, cartId } = payload

      stripeClient.customers.create({
        email: token.email,
        source: token.id
      })
      .then(customer => {
        return stripeClient.charges.create({
          amount: total * 100,
          currency: 'eur',
          customer: customer.id,
          description: `Paid from ${user.email} (${user.id})`
        })
      })
      .then(charge => {
        if (!charge) throw new BadCreateRequest()

        let closeCartData = {
          balanceTransaction: charge.balance_transaction,
          stripeId: charge.id,
          refundUrl: charge.refunds.url
        }

        return Cart.setAsPayed(cartId, closeCartData)
      })
      .then(closedCart => resolve(closedCart))
      .catch(reject)
    })
  }
}
Run Code Online (Sandbox Code Playgroud)

hot*_*dev 5

我遇到了类似的问题,并显示相同的错误消息。

我试图做的是使用变量中的键process.env,但它不起作用。

const Stripe = require('stripe');
const stripe = Stripe('sk_test_...');
Run Code Online (Sandbox Code Playgroud)

这对我有用。

  • 如果它不适用于“process.env”变量,请确保在命令之前添加“dotenv.config()”以正确加载 process.env。 (3认同)

小智 4

请用const stripeClient = require('stripe')('sk_test*************')