Почтальон и cURL возвращают разные результаты - PullRequest
0 голосов
/ 23 января 2019

Это URL, который я использую в почтальоне: - http://213.252.244.214/create-signature.php.Он имеет два параметра string и key.Он вернет input, который вы ввели, и вывод, который будет RJAGDhoz8yDJ7GwVLberI/NMYy2zMTTeR9YzXj7QhCM=, но если я запусту его из локона, он вернет D9UmS6r/qg0QI/0eIakifqrM3Nd1g6B3W7RCsiyO7sc=.Вывод в формате JSON.Ниже приведен код cURL: -

public function create_signature($input, $key) {
        $ch = curl_init();    
        curl_setopt($ch, CURLOPT_URL,'http://213.252.244.214/create-signature.php');
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, "string=$input&key=$key");                   
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $output = curl_exec($ch);
        $json = json_decode($output);
        $signature = $json->output; echo $signature; echo '<br>';
        curl_close($ch);
        return $signature;
    }

пример строки: - 2019-01-23 14:00:594lzUTYHw01dW5EmPan01M07hEiWUaEmdKl3kzpUUqak=Ha2wZwz46l7vSboxVNx3/DAUYsInjjKtAbDSnPsdDnA=igK7XzaTBrusPc3q5OEOQg==igK7XzaTBrusPc3q5OEOQg==1.0.110671523012111548248459fR9b/McBCzk=Deposit Fund698EURLuisTurinTurinVenis13212TF990303274103325689667lg@gmail.comLuisTurinTurinVenis13212TF990303274103325689667lg@gmail.comLuisTurinTurinVenis13212TF990303274103325689667lg@gmail.comclient_deposithttp://localhost/feature/CD-716/gateways/certus_finance/paymenthttp://localhost/feature/CD-716/gateways/certus_finance/paymenthttp://localhost/feature/CD-716/gateways/certus_finance/payment

пример ключа: - 85e1d7a5e2d22e46

Может кто-нибудь сказать мне, почемуэто разные ??Любая помощь будет оценена.

1 Ответ

0 голосов
/ 23 января 2019

Ваши значения $input и $key не кодируются. Со страницы руководства curl_setopt() ...

Этот параметр может быть передан в виде строки с кодированным кодом ... или в виде массива с именем поля в качестве ключа и данными поля в качестве значения

Почтальон делает это по умолчанию.

Чтобы избавить себя от необходимости вручную кодировать строки, просто используйте метод массива

curl_setopt($ch, CURLOPT_POSTFIELDS, [
    'input' => $input,
    'key'   => $key
]);

Обратите внимание на это предостережение ...

Примечание:
Передача массива в CURLOPT_POSTFIELDS закодирует данные как multipart / form-data , в то время как передача строки в кодировке URL закодирует данные как application / x-www-form -urlencoded .

При необходимости, чтобы обеспечить application/x-www-form-urlencoded, вы можете построить закодированную строку, используя http_build_query(), например,

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
    'input' => $input,
    'key'   => $key
]));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...