You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stripe Java服务端调用PaymentIntent.create()无响应求助

解决Stripe PaymentIntent.create()调用卡住的问题

可能原因及对应解决方案

1. 网络或代理限制

Stripe API需要访问外网,若服务器处于防火墙、内网环境或未正确配置代理,请求会无法到达Stripe服务器,导致程序无限等待。

  • 先验证服务器能否访问Stripe API:执行curl -u sk_test_你的测试密钥: https://api.stripe.com/v1/payment_intents,看是否能正常返回响应。
  • 若需代理,给Stripe SDK配置代理及超时:
    Stripe.apiKey = "TESTSECRETKEY";
    // 设置超时,避免无限阻塞
    Stripe.setConnectTimeout(10000);
    Stripe.setReadTimeout(10000);
    // 配置代理信息
    ProxyConfig proxyConfig = new ProxyConfig(
        "代理地址",
        代理端口,
        "代理用户名",
        "代理密码"
    );
    Stripe.setProxyConfig(proxyConfig);
    

2. 未设置超时时间

默认情况下Stripe SDK的超时阈值可能过长,甚至无超时设置,导致请求卡住却不抛出异常。

  • 初始化Stripe时添加超时配置,一旦请求超时会直接抛出异常,便于排查:
    Stripe.apiKey = "TESTSECRETKEY";
    Stripe.setConnectTimeout(10000); // 连接超时10秒
    Stripe.setReadTimeout(10000);    // 读取超时10秒
    

3. 测试密钥无效或权限不足

确保使用的测试密钥(以sk_test_开头)有效且具备创建PaymentIntent的权限:

  • 登录Stripe后台确认密钥未被禁用,且属于活跃的测试账号。
  • 用Postman手动测试:发送POST请求到https://api.stripe.com/v1/payment_intents,头部带上Authorization: Bearer sk_test_你的密钥,参数设置amount=1099&currency=sek&payment_method_types[]=card,验证能否正常创建PaymentIntent。

4. Stripe SDK版本问题

旧版本SDK可能存在请求阻塞的bug,建议升级到最新稳定版:

  • 若使用Maven,更新依赖版本:
    <dependency>
        <groupId>com.stripe</groupId>
        <artifactId>stripe-java</artifactId>
        <version>23.3.0</version> <!-- 替换为官网最新稳定版 -->
    </dependency>
    

5. 异常未被捕获

你的代码中没有捕获Stripe请求可能抛出的异常,若请求过程中出现错误(如密钥无效、参数错误),异常可能被框架吞掉,导致程序看似卡住。

  • 添加异常捕获逻辑,打印错误信息:
    try {
        PaymentIntent intent = PaymentIntent.create(params);
        System.out.println("3");
    } catch (StripeException e) {
        e.printStackTrace();
        // 可将错误信息返回给客户端,便于调试
        return gson.toJson(Map.of("error", e.getMessage()));
    }
    

内容的提问来源于stack exchange,提问作者Håkan Troberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 10:34:50