每次低于1000美元的购买都显示正确的费用。只有当购买价格超过1000美元时才会出现条纹显示1.00美元的费用。据我所知,以美分为单位的条纹费用必须乘以100才能转换为美元。我不知道为什么会这样。
$charge_amount = number_format($grand_total, 2)*100;
// Charge the user's card
try {
$charge = \Stripe\Charge::create(array(
"amount" => $charge_amount,
"currency" => CURRENCY, //defined in another file
"description" => $description,
"source" => $token,
"receipt_email" => $email,
"metadata" => $metadata)
);
答案 0 :(得分:2)
number_format()
用于格式化数字以显示给人类。它使用,
个字符分隔每3个数字。 Stripe API需要一个实际的数字,当它试图解析它时,它会停在逗号处。
如果您只想获得包含2位小数的数字,请使用round()
,而不是number_format()
。
$charge_amount = round($grand_total, 2) * 100;