条带付款意向:更新并确认付款金额的变化



我正在为一个运行在";余额";系统,用户在其中输入他们想存入交易余额的金额,并提交信用卡信息进行存款。

我不知道如何避免在付款确认时连续调用两个api来stripe:一个是用html表单中的当前存款值更新付款金额,另一个是确认付款意图。

以下是我所理解的限制:

  1. Stripe需要创建一个付款意向,以便用他们的信用卡表单填充iframe
  2. 为了获得流畅的存款体验,我希望我的网站上用户输入存款金额的<input>与条纹iframe同时活跃并以相同的模式出现
  3. 条纹确认付款意向api似乎不允许您发送新的付款";金额";确认时。当我从客户端发送一个新的金额参数,如:stripe.confirmCardPayment(clientSecret, {payment_method:{card:stripeCardElement}, amount:depositAmount})时,我收到一个错误:{code: "parameter_unknown", doc_url: "https://stripe.com/docs/error-codes/parameter-unknown", message: "Received unknown parameter: amount", param: "amount", payment_intent: Object { id: "pi_1IV21CGYTBSx8jHSRsJ1bLls", object: "payment_intent", amount: 2000, … }, type: "invalid_request_error"}。注意;金额";参数适用于更新支付api调用(参见下面的#4(
  4. 付款意向更新api要求您在更新完成后确认付款意向,并向客户端发回响应。根据条带文档:";根据您更新的属性,您可能需要再次确认PaymentIntent。例如,更新payment_method总是需要再次确认PaymentIntent。如果您喜欢同时更新和确认,我们建议您改为通过confirm API更新属性">

如果是这样,我的付款确认工作流程需要两次同步访问stripe api:第一次更新金额,第二次确认付款。有什么办法可以避免这种情况吗?

amount不是confirmCardPayment的可接受参数。在创建PaymentIntent服务器端时,必须指定amount。正如您所说,它也不可通过PaymentIntentconfirm进行更新。但是,根据您的流程,您可以在confirm之前通过更新PaymentIntent来更新amount:https://stripe.com/docs/api/payment_intents/update#update_payment_intent-金额。您可以通过webhook同步或异步地执行此操作。

最新更新