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" 所以不确定是什么导致了你的结果,但我认为这就是问题所在。
我将 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" 所以不确定是什么导致了你的结果,但我认为这就是问题所在。