Express / React中的条带错误:您未设置可发布密钥

时间:2018-07-09 15:29:43

标签: reactjs express key stripe-payments

我可以在本地运行Express / React应用,而不会出现Stripe错误,并且可以在测试模式下成功付款,但是在Heroku上,单击按钮时会出现此错误:You did not set a valid publishable key. Call Stripe.setStripePublishableKey() with your publishable key.这是我的设置:

在heroku中,我将我的密钥添加为config vars

config / dev.js 中,我将所有键设置为字符串

config / prod.js 中:

module.exports = {
  googleClientID: process.env.GOOGLE_CLIENT_ID,
  googleClientSecret: process.env.GOOGLE_CLIENT_SECRET,
  mongoURI: process.env.MONGO_URI,
  cookieKey: process.env.COOKIE_KEY,
  stripePublishableKey: process.env.STRIPE_PUBLISHABLE_KEY,
  stripeSecretKey: process.env.STRIPE_SECRET_KEY
};

client / src / components / Payments.js

import React, {Component} from 'react';
import StripeCheckout from 'react-stripe-checkout';
import { connect } from 'react-redux';
import * as actions from '../actions';

class Payments extends Component {
  render() {

    return (
      <StripeCheckout 
        name="Emaily"
        description="Add $5 for 5 email credits"
        amount={ 500 }
        token={ token => this.props.handleToken(token) }
        stripeKey={ process.env.REACT_APP_STRIPE_KEY }
      >
      <button className="btn">
      Add Credits
      </button>
      </StripeCheckout>
    );
  }
}

export default connect(null, actions)(Payments);

创建React App要求我使用REACT_APP_STRIPE_KEY而不是stripePublishableKey或STRIPE_PUBLISHABLE_KEY,并且我尝试将其环境变量更改为无效。有任何想法吗?

1 个答案:

答案 0 :(得分:0)

在从.gitignore文件中删除.env.production之前,我遇到了同样的问题。根据React Docs:    Env Links and CRA

  

.env文件应检入源代码管理(不包括.env * .local)。

我意识到我的开发环境正在正常运行,因为.env.development和.env.production文件已由CRA编译为bundle.js。如果您在.gitignore中包含这些内容,heroku将无法找到它们。希望这可以帮助!