c# - Stripe 出错:没有这样的 payment_intent: 'my payment intent id'
问题描述
抱歉,我对编码很陌生,所以我不知道很多缩写/速记的东西。因此,我正在使用 React 和 C# 尝试使用 Stripe 来处理付款,并且我已经到了要取回 、 和付款方式 ID 的地步payment_intent id
,client_secret
但是当我运行代码时:
const result = await stripe.confirmCardPayment(this.state.clientSecret, {
payment_method: paymentMethodRQ.paymentMethod.id,
});
我得到错误:
没有这样的支付意图。这是 /v1/payment_intent/confirm 的 404
我想这意味着付款意图实际上并没有被创建,因为它也没有显示在 Stripe 仪表板上。不太确定如何解决这个问题。大多数其他类似问题要么使用不同的语言,要么没有解决如何解决我的特定问题。我遵循了收集付款然后付款的文档,该文档位于https://stripe.com/docs/connect/collect-then-transfer-guide#setup
这是我提交的 React 代码:
handleSubmit = async (event) => {
event.preventDefault();
const { stripe, elements } = this.props;
if (!stripe || !elements) {
_logger("Stripe.js has not yet loaded.");
// Make sure to disable form submission until Stripe.js has loaded.
return;
}
const paymentMethodRQ = await stripe.createPaymentMethod({
type: "card",
card: elements.getElement(CardElement),
});
const result = await stripe.confirmCardPayment(this.state.clientSecret, {
payment_method: paymentMethodRQ.paymentMethod.id,
});
if (result.error) {
toast.error("payment not processed");
_logger(result.error.message, "payment not processed");
} else {
toast.success("The payment processing!");
if (result.paymentIntent.status === "succeeded") {
_logger("payument successful");
// havent gotten to this part yet
}
}
};
我正在传递PaymentIntentCreateOptions
来自React的金额和货币。这是我在Visual Studio中的付款意图控制器:
[HttpPost("paymentintent")]
public async Task<IActionResult> PaymentIntent(PaymentIntentCreateOptions options)
{
StripeConfiguration.ApiKey = "my test secret key";
ItemResponse<PaymentIntentModel> response = new ItemResponse<PaymentIntentModel>();
var service = new PaymentIntentService();
var paymentIntent = service.Create(options);
Logger.LogInformation(paymentIntent.ToString());
var paymentIntentModel = new PaymentIntentModel();
paymentIntentModel.Id = paymentIntent.Id;
paymentIntentModel.ClientSecretKey = paymentIntent.ClientSecret;
response.Item = paymentIntentModel;
return Ok200(response);
}
解决方案
您必须确保您在前端声明的公钥与您在条带帐户中的公钥匹配,否则您将收到此错误。
推荐阅读
- reactjs - reactjs中条件渲染的更简洁方式
- hibernate - 如何用like运算符编写jpql查询
- .net - 是否可以突出显示 winforms 列表视图的特定列标题?
- mule - 如何在 mulesoft 中检测文件中的拉丁词
- javascript - 引导表:如何动态提取 ajaxRequest(params) 调用所需的参数
- multithreading - 处理“线程中的异常..” tkinter,转换为“messagebox.showerror”
- java - 如何获取传递给变量的值?
- html - 带有 SCSS 的特殊悬停效果,没有代码冗余
- python - Python - 如何一次运行多个返回结果的函数
- python - 自动放大和注册两个点云,相同的对象不同大小,python