我有一个条带帐户,我正在使用测试API密钥.
我创建了一个包含以下信息的计划 -
{
"amount": 995,
"created": 1418800758,
"currency": "usd",
"id": "c06e1791-1c6a-45fe-9c26-8f0c07dda967",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {},
"name": "Pro2",
"object": "plan",
"statement_description": null,
"statement_descriptor": null,
"trial_period_days": null
}
Run Code Online (Sandbox Code Playgroud)
我在我的项目中使用checkout.js.填写完所有数据并点击上述计划的付款后,会引发错误"无效整数994.999999999".
9.94美元,9.96美元,29.95美元以及我试过的其他价值不会引发此错误.
这是一个结帐错误还是与我的设置有关?
错误的屏幕截图 -

jsfiddle再现错误 - http://jsfiddle.net/f30z9uc6/2/
我正在调试我的代码。我在 PHP 方面不是天才,如果它不是整数,需要一些帮助来破译我声明为参数的内容......
任何人都可以帮忙吗?
{
"error": {
"code": "parameter_invalid_integer",
"doc_url": "https://stripe.com/docs/error-codes/parameter-invalid-integer",
"message": "Invalid integer: 1.13",
"param": "amount",
"type": "invalid_request_error"
}
Run Code Online (Sandbox Code Playgroud)
$app->post('/createCharges', function() use ($app) { $response = array();
$json = $app->request->getBody();
$data = array(json_decode($json,true));
$amount = $data[0]['amount'];
$source = $data[0]['source'];
$appointmentid = $data[0]['appointmentid'];
\Stripe\Stripe::setVerifySslCerts(false);
\Stripe\Stripe::setApiKey(STRIPE_API_KEY);
$charge = \Stripe\Charge::create(array(
"amount" => $amount,
"currency" => "usd",
"source" => $source,
"description" => "test order from ios"
));
Run Code Online (Sandbox Code Playgroud) 我无法理解这一个.
我的形式通过一则params的106是£1.06.
充电卡:
amount = params[:amount].to_f
begin
charge = Stripe::Charge.create(
:amount => amount / 100,
:currency => "gbp",
:source => token,
:description => "Example charge"
)
rescue Stripe::CardError => e
# The card has been declined
end
Run Code Online (Sandbox Code Playgroud)
如何预防:
无效的整数:1.06
整数从哪里来?我把它转换成了float.