reactjs - 在 ReactJs 中添加条带元素多个可发布键
问题描述
我正在使用 React Stripe Elements 包。我在 Stripe 有两个银行账户,一个用于澳大利亚,另一个用于西班牙。我想根据用户的位置将付款路由到银行账户。
我在 env 文件中设置了澳大利亚帐户的默认密钥。我尝试在 componentDidMount 方法中使用像这个 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 使用新密钥,但它使用默认值。
解决方案
由于您可能会动态更改密钥,因此您必须先自己初始化 Stripe,然后按照此处记录的方式传递它:
当其中一个或多个假设不适用于您的集成时,您还有另一种选择:将 Stripe 实例作为 stripe prop 直接传递给。stripe 属性可以是 null 也可以是使用 Stripe(apiKey, options) 构造 Stripe 实例的结果。
<StripeProvider stripe={stripe}>
<Checkout />
</StripeProvider>
您甚至可以初始化 2 个单独的实例,每个键一个,然后根据用户的位置使用正确的实例。
推荐阅读
- python-3.x - 在 tensorflow api 对象检测模型中检测微小对象
- java - StackTraceElement 数组的哈希码每次返回不同的值
- c# - 为什么当前文本没有更新?
- python - 在python中下载文件时如何制作进度条
- informatica-powercenter - 将 oracle 表值转换为 PDF 或 TXT
- javascript - 路由器推送有时会在 url 路径中推送 [object Object]
- node.js - 我想获得观看次数+点赞次数最多的 20 条记录,在 mongoose 中我该怎么做?
- android - 避免来自底部导航快速点击的双重 API 调用
- database - 为什么在使用基于仲裁的读写时Cassandra不能线性化
- google-apps-script - 柱形图生成器未应用选项 useFirstColumnAsDomain