php - 使用 React 进行条带支付
问题描述
我正在为前端使用反应,我想制作一个简单的付款表格,打印在控制台上的是我点击付款按钮时得到的响应
这是我使用条形元素构建的表格,我给了我付款方法的实例,这是我第一次使用条形
这是负责处理此表单的功能
const stripe = useStripe()
const elements = useElements()
const [, setToast] = useToasts()
const { logged, currentUser } = useAuth()
const handleCardDetailsChange = (event) => {
event.error ? setCheckoutError(event.error.message) : setCheckoutError()
}
const handleFormSubmit = async (e) => {
e.preventDefault()
setProcessingTo(true)
if (!stripe || !elements) {
setProcessingTo(false)
return
}
const billingDetails = {
name: e.target.name.value,
email: e.target.email.value,
phone: numberStart,
address: {
city: e.target.city.value,
line1: e.target.line1.value,
line2: e.target.line2.value,
country: country,
postal_code: e.target.postal_code.value,
},
}
const cardElement = elements.getElement(CardElement)
const { error, paymentMethod } = await stripe.createPaymentMethod({
type: 'card',
card: cardElement,
billing_details: billingDetails,
})
if (error) {
setCheckoutError(error.message)
console.log('[error]', error)
setProcessingTo(false)
} else {
console.log('[PaymentMethod]', paymentMethod)
try {
const { id } = paymentMethod
logged
? await useApi
.post('api/payment', {
amount: price,
id,
})
.then((response) => {
console.log(response)
})
.then(() => setProcessingTo(false))
: setToast({
text: 'you need to be logged into your account',
type: 'error',
})
} catch (err) {
console.log('err')
setProcessingTo(false)
}
setProcessingTo(false)
}
}
我看过一些关于在服务器端修复端点的文章,但我不太明白,有人可以向我解释下一步我应该做什么吗?
我正在将 laravel 与 cachier 包一起使用,但似乎我在文档中重复了相同的内容,它没有谈论如何使用 api
解决方案
推荐阅读
- flutter - 将 JSON 数据从文件分配给变量类提供程序
- amazon-ecs - 如何在特殊环境中运行 aws logconfiguration 或 logGroup
- mysql - MySQL 触发器在更新表时无法设置变量
- python - 无法通过键盘中断 trio/asyncio 程序 (ctrl+c) 退出
- php - 如何在 wordpress 主题中编写自定义函数
- javascript - 如何获取特定日期的明天日期
- docker - 要复制到父文件夹中的 dockerfile 构建错误
- python - 主仿真中的 PyFMI 多个输入
- ruby-on-rails - Ruby,如何在多个屏幕上拆分具有多个字段的 simple_form,以便每个屏幕有 1 个字段
- regex - 读取非结构化文本文件后,如何在 Spark Scala 中使用正则表达式将 RDD 转换为 Dataframe?