html - 如何将 cardElement 传递给 createPaymentMethod(cardElement, customerId, priceId) React+Stripe?
问题描述
我<CardSection />
在 SignUp 表单组件中有他们的元素,在提交时我验证了用户,创建了客户,但不知道如何将其传递<CardSection />
给 createPaymentMethod 函数。
我拥有的一些东西: 注册表单:
handleSignUp = (event) => {
event.preventDefault();
let cardElement = document.getElementById('#cardElement');
signUp(this.state.email, this.state.password, cardElement);
}
哪里signUp()
看起来像:
import firebase from './firebase.js';
import { createCustomer } from './createCustomer.js';
import { createPaymentMethod } from './createPaymentMethod.js';
export function signUp(email, password) {
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
console.log(`Error in signUp ${error.code}: ${error.message}`);
});
createCustomer().then((customer) => {
let customerId = customer.customer.id;
let priceId = "price_HIsuBNTXc2NQ7L";
createPaymentMethod(cardElement, customerId, priceId);
});
}
这不起作用(我明白TypeError: JSON.stringify cannot serialize cyclic structures.
了),而且我认为我做错了。做这部分的正确方法是什么?
文档(https://stripe.com/docs/billing/subscriptions/fixed-price)似乎跳过了从第 4 步到第 5 步的这一步。我对 Stripe 和 React 很熟悉,所以请放轻松。我在这里想念什么?
解决方案
我相信 Erwan Daniel 的评论是正确的,您的signUp
函数缺少参数。它的签名应该是:
export function signUp(email, password, cardElement)
推荐阅读
- ios - 以编程方式编辑 UIStackView
- klipfolio - 根据日期范围和项目编号选择数据
- java - 在 Visual Studio 中创建 Java 项目后缺少类路径文件
- amazon-web-services - 使用 Cloudfront 作为跨多个 VPC 的反向代理
- php - 如何使用 php + my sql 将数据从表复制到另一个表
- windows-installer - 为什么安装 update.exe 需要原始 .msi 文件?
- react-native - 在 XMLHttpRequest 中添加/注入客户端证书
- html - 如何定位弹性项目,它们之间没有空格
- css - Material-UI:使用 makeStyles 和 CSS-In-JS 来定位库元素样式
- python - Panda Dataframe - 根据条件生成唯一 ID 并附加一致