com.stripe.exception.InvalidRequestException:缺少必需的参数:金额。;请求 ID:req_6mshZrGwQeiE8c?

com.stripe.exception.InvalidRequestException: Missing required param: amount.; request-id: req_6mshZrGwQeiE8c?

我将 Strip java api 集成到我的游戏框架中。 我在 Charge class 上调用 create() 方法,同时出现异常。
这是我的代码:

Stripe.apiKey = "sk_test_BQokikJOvBiI2HlWgH4olfQ2";
    Logger.debug("stripeToken"+form.data().get("stripeToken"));

    final Map<String,Object> chargeParams = new HashMap<String, Object>();
    chargeParams.put("amount", 20);
    chargeParams.put("currency", "usd");
    //chargeParams.put("source","tok_16YxZe2eZvKYlo2C3nzXof9N" ); // obtained with Stripe.js
    chargeParams.put("source", form.data().get("stripeToken"));
    chargeParams.put("description", "Charge for test@example.com");


    try {
        final RequestOptions options = RequestOptions
                .builder()
                .setIdempotencyKey("tGW5MOnasgR1ezw4")
                .build();


        final Charge chargeresponse = Charge.create(chargeParams,options);

    } catch (AuthenticationException | InvalidRequestException | APIConnectionException | CardException
            | APIException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

来源link Java Api

我认为这里的错误是您在 amount 参数中传递了 20。此参数需要一个以美分为单位的值,这意味着您尝试收取 0.20 美元,这在 Stripe 中不受支持,因为您可以收取的 minimum 金额是 0.50 美元。

如果您在该参数中传递 50(或更多),它应该会按预期工作。

编辑:错误不应该是这个,当我尝试时我得到 "Amount must be at least 50 cents" 所以不确定是什么导致了你的结果,但我认为这就是问题所在。