Отправка JSON HTTP-запроса с использованием Guzzle HTTP: параметры результата не соответствуют ожидаемым - PullRequest
1 голос
/ 09 февраля 2020

Я хочу отправить запрос JSON в конечную точку, но полученные результаты не соответствуют запрашиваемым параметрам.

Это массив

$datas = [
            "institutionCode" => $institutionCode,
            "brivaNo" => $brivaNo,
            "custCode" => $custCode
        ];

Это ответ с использованием Guzzle HTTP

try {
      $response = $client->request($verb, $endpoint,
                [
                    "headers" =>
                        [
                            "Authorization" => "Bearer " . $token,
                            "BRI-Timestamp" => $timestamp,
                            "BRI-Signature" => $signature,
                        ],
                    "json" => $datas
                ]
            );

            return $response;
        }
        catch (\GuzzleHttp\Exception\RequestException $e) {
            return $e->getResponse();
        }

Это ответ от конечной точки

{
    "status": false,
    "errDesc": "Institution Code Tidak Boleh Kosong",
    "responseCode": "03",
    "data": {
        "{\"institutionCode\":\"J104408\",\"brivaNo\":\"77777\",\"custCode\":\"7878787878\"}": ""
    }
}

Почему «данные» не совпадают с массивом данных, который я дал выше, и вместо этого создает новый шаблон с обратным слоем sh в нем?

Это родной способ использования cURL PHP

если есть кто-то, кто может превратить его в Guzzle Http, это поможет мне, после того, как я попробовал этот код, он тоже не помог

$institutionCode = "J104408";
$brivaNo = "77777";
$custCode = "123456789115";

$payload = "institutionCode=".$institutionCode."&brivaNo=".$brivaNo."&custCode=".$custCode;

$path = "/v1/briva";
$verb = "DELETE";
$base64sign = generateSignature($path,$verb,$token,$timestamp,$payload,$secret);

$request_headers = array(
                    "Authorization:Bearer " . $token,
                    "BRI-Timestamp:" . $timestamp,
                    "BRI-Signature:" . $base64sign,
                );

$urlPost ="https://sandbox.partner.api.bri.co.id/v1/briva";
$chPost = curl_init();
curl_setopt($chPost, CURLOPT_URL,$urlPost);
curl_setopt($chPost, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($chPost, CURLOPT_POSTFIELDS, $payload);
curl_setopt($chPost, CURLINFO_HEADER_OUT, true);
curl_setopt($chPost, CURLOPT_RETURNTRANSFER, true);
$resultPost = curl_exec($chPost);
$httpCodePost = curl_getinfo($chPost, CURLINFO_HTTP_CODE);
curl_close($chPost);


$jsonPost = json_decode($resultPost, true);
return $jsonPost;
...