从反应组件卸载时卸载纯粹的条带

Unload stripe pure from when react component unmounts

所以,我想摆脱从我的网站发送数据的条纹。

每次点击都在胡说什么

curl 'https://m.stripe.com/6' \
  -H 'authority: m.stripe.com' \
  -H 'pragma: no-cache' \
  -H 'cache-control: no-cache' \
  -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36' \
  -H 'dnt: 1' \
  -H 'content-type: text/plain;charset=UTF-8' \
  -H 'accept: */*' \
  -H 'origin: https://m.stripe.network' \
  -H 'sec-fetch-site: cross-site' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-dest: empty' \
  -H 'referer: https://m.stripe.network/' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'cookie: m=db491b6f-636e-4801-a446-c79c62db7d25cd4297; private_machine_identifier=r3F5QQbHA31m%2FqdyaRYQx54%2B%2BhT9pZTlEAm0bKEx832xHQNO8cKhXCLY%2BpBpQHxr6CM%3D; session=sess_IlGtyX7eySNiON53kjkXvE9zPmVWYvWh' \
  --data-binary 'JTdCJTIydjIlMjIlM0ExJTJDJTIyaWQlMjIlM0ElMjIzZmJmYzc0MzMwYTY1NTEwM2E3ZjY1NzE2YTA5OTA5NCUyMiUyQyUyMnQlMjIlM0E2NC4xMjUlMkMlMjJ0YWclMjIlM0ElMjI0LjUuMzMlMjIlMkMlMjJzcmMlMjIlM0ElMjJqcyUyMiUyQyUyMmElMjIlM0FudWxsJTJDJTIyYiUyMiUzQSU3QiUyMmElMjIlM0ElMjIlMjIlMkMlMjJiJTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZkWjFMRHZvVExpV0NLclJWZ0l3TFFTdThoX25OSFpZSWVQcEFTZVRHUzB3LjB2RUtlM0c1cFNqUl9sbk5nYnVVMmpVQWNSLVlqSmxzTEE5ZUFkRDRNMDAuZzJ1OS1ocVp2R0lxWUpjUGxQZndKQWYtdjNSZ3lLX3gxTnBwekFsQTEyTSUyRmVJVjZEZ3V6WFAzWlhUZ0J3N2F4d3lZWU9GaXpEZGNkUVVWVkRFSjhhX2slMkZFY3dmdzcxOTJSWVVsT2hXdGZXeG1rT25vNnZMVVZLSWRDUVFrNlNJR3RBJTIyJTJDJTIyYyUyMiUzQSUyMlRqNzI0TVpFUS1abDJ0a2EwWG9ZUVcwM3ZjRlVzVzhJSUxHVm5Jc2VQTm8lMjIlMkMlMjJkJTIyJTNBJTIyODhmYWE5MTgtNmY2OS00MDQ5LWFhNmYtOTg3OTk0MDExYmU3NTQ0MTAyJTIyJTJDJTIyZSUyMiUzQSUyMjg1NjUyOWJiLTA1MTYtNDkyNy05NGRlLTQ4YjYzOTgwMmFjZTFhYTM3MyUyMiUyQyUyMmYlMjIlM0FmYWxzZSUyQyUyMmclMjIlM0F0cnVlJTJDJTIyaCUyMiUzQXRydWUlMkMlMjJpJTIyJTNBJTVCJTIybG9jYXRpb24lMjIlNUQlMkMlMjJqJTIyJTNBJTVCJTVEJTJDJTIybiUyMiUzQTQ2Ni40ODk5OTk5OTE2MDg4JTJDJTIydSUyMiUzQSUyMnRlc3RpbmctYXBwLnNwb3RuYW5hLmNvbSUyMiU3RCUyQyUyMmglMjIlM0ElMjJjMGI4YjE3MzQyNGQyNDU3ODczOSUyMiU3RA==' \
  --compressed

所以我从 https://mtlynch.io/stripe-recording-its-customers/ 那里了解了 stripe pure。

我在安装支付组件后立即进行条带安装。

loadStripe.setLoadParameters({advancedFraudSignals: false})
loadStripe(process.env.REACT_APP_STRIPE_PUBLISHABLE_KEY??'').then(setStripe);

而且我不知道如何强制删除脚本。所以如果它加载一次,它就会开始做它有趣的事情。

如果再次呈现支付组件,我得到

ERROR: setLoadParameters cannot be called after loadStripe() is called

所以,我想的解决方案可以很简单,如果我可以在卸载支付组件时卸载条带脚本就可以了。有什么建议吗?

或任何可以在这里完成的更好的东西。

您需要在没有 side effects and advanced fraud detection in the root component of your app. Then you'd pass the reference to Stripe as a prop as per the example here: https://github.com/stripe/react-stripe-js#minimal-example 的情况下导入 Stripe。这样,您的代码就不会在您的组件每次 unmounted/remounted.

时尝试重新加载 Stripe

此外,您可能对来自同一作者的更新博客 post 感兴趣,内容涉及缓解措施以及 Stripe 提供的更多信息:https://mtlynch.io/stripe-update/