Stripe: параметр_invalid_integer, новый для PHP - PullRequest
0 голосов
/ 28 ноября 2018

Я отлаживаю свой код.Я не гений в 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"

  }

$ 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"
    ));

1 Ответ

0 голосов
/ 29 ноября 2018

В Stripe свойство amount для Charge всегда является целым числом в наименьшей единице валюты (центы для доллара США).

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

взимая $1.13, вам нужно убедиться, что amount, который вы передаете в \Stripe\Charge::create, равен 113, а не 1.13 --- если ваш пользовательский интерфейс передает десятичное значение, простое *100 должноздесь вы получите нужное вам значение, например $amount = (int)($data[0]['amount'] * 100);

...