我正在使用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使用新密钥,但它使用默认密钥。
答案 0 :(得分:1)
由于您可能会动态更改密钥,因此您必须先自行初始化Stripe,然后按照记录的here进行传递:
当其中一个或多个假设对您的集成不成立时,您还有另一种选择:将Stripe实例作为Stripe道具直接传递给。 stripe prop可以为null或使用Stripe(apiKey,options)构造Stripe实例的结果。
<StripeProvider stripe={stripe}>
<Checkout />
</StripeProvider>
您甚至可以初始化2个单独的实例,每个键一个,然后根据用户的位置使用正确的实例。