J'exécute une demande de publication cURL qui semble atteindre l'URL et renvoyer une réponse. Cependant, je suis amené à croire que je ne gère pas correctement la sortie de la demande et que cela génère une erreur que je ne comprends pas. Je suis extrêmement nouveau sur cURL et si quelqu'un pouvait m'indiquer la bonne direction, je l'apprécierais.

$curl = curl_init();

$headers = array(
    'Content-Type: application/json',
    'X-Requested-With: XMLHttpRequest',
);

curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'XXX',
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => [
        client_id => 'XXX',
        client_secret => 'XXX',
        member_id => 'XXX'
    ],
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_HTTPAUTH => CURLAUTH_BASIC
]);

$resp = curl_exec($curl);

curl_close($curl);

var_dump(json_decode($resp, true));

Cela se traduit par les erreurs suivantes :

{"errors":{"":["Input string '--------------------------cec6101ba64bcb7f' is not a valid number. Path '', line 1, position 42."]},"title":"One or more validation errors occurred.","status":400,"traceId":"80031695-0002-ef00-b63f-84710c7967bb"}
0
Seth Spivey 31 janv. 2020 à 01:04

1 réponse

Meilleure réponse
$curl = curl_init();

$headers = array(
    'Content-Type: application/json',
    'X-Requested-With: XMLHttpRequest',
);
//////
 Adding this and using json_encode allowed for the request to be properly sent with the required id's and secret tokens.
//////
$data = array(
    "ClientId" => "$api_clientId" ,
    "ClientSecret" => "$api_clientSecret",
    "MemberId" => "$api_memberId"
);
$data_string = json_encode($data);

curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'https://cors-anywhere.herokuapp.com/https://staging.micromerchantsystems.com/authenticationservice/api/GateKeeper/createtoken',
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => $data_string,
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_HTTPAUTH => CURLAUTH_BASIC
]);

$resp = curl_exec($curl);

curl_close($curl);

var_dump(json_decode($resp, true));
0
Seth Spivey 30 janv. 2020 à 22:22