条纹:parameter_invalid_integer,PHP 新手

c a*_*ews 3 php debugging integer stripe-payments

我正在调试我的代码。我在 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)

duc*_*uck 6

对于 Stripe,a 的amount属性Charge始终是货币的最小单位(美元为美分)的整数。

https://stripe.com/docs/api/charges/create#create_charge-amount

所以收取$1.13你需要确保amount你传递\Stripe\Charge::create113,而不是1.13---如果你的前端是通过一个十进制值的简单*100应该让你的价值,你需要在这里,如$amount = (int)($data[0]['amount'] * 100);