Stripe API создать SKU - PullRequest
0 голосов
/ 21 мая 2019

Мне нужно создать SKU с помощью API полосы.

Проблема в поле инвентаря.Ответ Stripe api:

'error' => [
    'message' => 'Invalid hash',
    'param' => 'inventory',
    'type' => 'invalid_request_error'
]

Мой php-код:

    $endPoint = 'https://api.stripe.com/v1/skus';
    $APIKEY_TEST = 'my_api_key';
    $headers = array('Authorization: Bearer '.$APIKEY_TEST);

    $sku = [
        'active' => 'true',
        'inventory' => ['quantity' => 10000000 ,'type' => 'infinite', 'value' => null],
        "currency" => "eur",
        "price" => $price,
        "product" => $stripe_product_id
    ];

    $array_string ='';
    foreach($sku as $key => $value) {
        $array_string .= $key.'='.$value.'&';
    }
    rtrim($array_string, '&');

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_URL, $endPoint);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $array_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $output = curl_exec($ch);
    curl_close($ch);

В перечне документов stripe api есть поле типа hash.Я попытался json_encode () без удачи.Возможно, проблема в отправке массива вместо хеша.В массиве $ sku поле инвентаря также является вложенным ассоциативным массивом.Может быть, проблема и в этом.

Есть ли способ отправить CURLOPT_POSTFIELDS, содержащий инвентарь, чтобы полоса его приняла?

РЕДАКТИРОВАТЬ: В панели мониторинга Stripe я вижу мой запрос:

  {
  "active": "true",
  "inventory": "Array",
  "currency": "eur",
  "price": "3",
  "product": "prod_F6ipvfYFvOxxQq"
}

Поле Inventory не содержит данных, но вместо этого "Array".

1 Ответ

1 голос
/ 21 мая 2019

Перепробовав множество возможных решений, я нашел ответ:

$post_array = http_build_query($sku);

И знайте, что нашивка принимает массив $ sku с вложенным массивом инвентаря.

Стоит отметить, что нашивка не принимает JSON в запросах.

Запрос должен быть закодирован в URL.

...