Java Stripe:如何完成 "Incomplete" 付款

Java Stripe : How to Complete an "Incomplete" Payment

我正在使用 PaymentIntent 进行付款。我指定了拥有所有账单信息的客户,但付款被指定为“不完整”,我检查了这个 说我需要使用 Stripe.js 的集成,我可以在其中填写我的卡信息。

有什么方法可以让付款访问客户信息,或者至少接受信用卡信息?

这是我的代码:

@PostMapping ("/create-payment-intent")
public CreatePaymentResponse createSub () throws StripeException {
    Stripe.apiKey = API_SECRET_KEY;

    PaymentIntentCreateParams params = new PaymentIntentCreateParams.Builder()
            .setCurrency("eur")
            .setAmount(20 * 100L)
            .setCustomer("cus_Layhq7Kj0U6xem")
            .setReceiptEmail("mailTest@gmail.com")
            .build();

    PaymentIntent paymentIntent = PaymentIntent.create(params);
    return  new CreatePaymentResponse(paymentIntent.getClientSecret());
}

如果您已经为客户保存了付款方式,在 PaymentIntentCreateParams 中添加以下内容应该可以从客户保存的付款方式中扣款(前提是不需要额外的操作,例如 3DS 身份验证):

如果没有保存的支付方式,则只能使用 StripeJS 通过前端的支付元素收集卡详细信息:https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=elements

如果您不想集成前端,可以使用 pre-built 结帐页面而不是直接与 Payment Intent 集成:https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=checkout