在ReactJs中将Stripe元素添加多个可发布键

时间:2019-04-04 14:15:06

标签: reactjs stripe-payments react-stripe-elements

我正在使用React Stripe Elements包。我在Stripe有两个银行帐户,一个在澳大利亚,另一个在西班牙。我想根据用户的位置将付款路由到银行帐户。

我在env文件中设置了澳大利亚帐户的默认密钥。我试图使用像this window.Stripe(“ MY_KEY”)这样的全局条纹对象来更改它,但是在向条纹发送请求时,它不会覆盖默认键。

defkey = "pk_def_key"
window.Stripe("pk_test_****"); //overwrite default key

this.props.stripe.createToken().then(payload => {
          if (payload.error) {
            this.setState({
              cardError: payload.error.message,
              isLoading: false
            });
            return;
          } else {
            const stripeToken = payload.token.id;
            this.setState({
              data: { ...this.state.data, stripeToken }
            });
            // Do Payment Now
            this.verifyPayment();
          }
        });

我希望this.props.stripe使用新密钥,但它使用默认密钥。

1 个答案:

答案 0 :(得分:1)

由于您可能会动态更改密钥,因此您必须先自行初始化Stripe,然后按照记录的here进行传递:

  

当其中一个或多个假设对您的集成不成立时,您还有另一种选择:将Stripe实例作为Stripe道具直接传递给。 stripe prop可以为null或使用Stripe(apiKey,options)构造Stripe实例的结果。

<StripeProvider stripe={stripe}>
  <Checkout />
</StripeProvider>

您甚至可以初始化2个单独的实例,每个键一个,然后根据用户的位置使用正确的实例。