Перевести php curl в узел js request - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть следующий php код:

        //Create url
        $url = "https://pci.zcredit.co.il/WebControl/RequestToken.aspx";
        $post = "TerminalNumber=$TerminalNumber"
        ."&Username=$UserName&PaymentSum=$PaymentSum&PaymentsNumber=$PaymentsNumber&Lang=$Lang"
        ."&Currency=$Currency&UniqueID=$UniqueID&ItemDescription=$ItemDescription&ItemQtty=$ItemQtty"
        ."&ItemPicture=$ItemPicture&RedirectLink=$RedirectLink&NotifyLink=$NotifyLink"
        ."&UsePaymentsRange=$UsePaymentsRange&ShowHolderID=$ShowHolderID&AuthorizeOnly=$AuthorizeOnly"
        ."&HideCustomer=$HideCustomer&CustomerName=$CustomerName&CssType=$CssType&IsCssResponsive=$IsCssResponsive";

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url); // Create the request url
        curl_setopt($ch, CURLOPT_POSTFIELDS,$post); //Set post value
        curl_setopt($ch, CURLOPT_POST, 1); // Set the request method to POST
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Not return data in brower
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        $page = curl_exec($ch);    // Get the response

который я пытаюсь использовать в узле js, с запросом:

let url = "https://pci.zcredit.co.il/WebControl/RequestToken.aspx";
        let post = `TerminalNumber=${TerminalNumber}`
        +`&Username=${UserName}&PaymentSum=${PaymentSum}&PaymentsNumber=${PaymentsNumber}&Lang=${Lang}`
        +`&Currency=${Currency}&UniqueID=${UniqueID}&ItemDescription=${ItemDescription}&ItemQtty=${ItemQtty}`
        +`&ItemPicture=${ItemPicture}&RedirectLink=${RedirectLink}&NotifyLink=${NotifyLink}`
        +`&UsePaymentsRange=${UsePaymentsRange}&ShowHolderID=${ShowHolderID}&AuthorizeOnly=${AuthorizeOnly}`
        +`&HideCustomer=${HideCustomer}&CustomerName=${CustomerName}&CssType=${CssType}&IsCssResponsive=${IsCssResponsive}`;

const request = require('request');

request(url +'/' + post, { json: true }, (err, res, body) => {
  if (err) { return console.log(err); }

});

Но я должен просто добавить параметры записи в исходный URL? Это безопасно?

Заранее спасибо!

1 Ответ

1 голос
/ 07 апреля 2019

Синтаксис для публикации форм в кодировке URL с помощью Запрос прост:

request.post(url).form({ key: value })

Конечно, вы можете отправить запрос с параметрами в URL, используяпеременные литералов шаблона, и это ничего не изменит с точки зрения безопасности, но будет более читабельным.

Ваш код будет безопасным, если вы очистите параметры и если вы используете шифрование (https), то же самоекак вы должны делать на любом языке, как говорит main.c в своем комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...