Добрый вечер, у меня проблема с POST
запросом на CURL
.
CURL
запрос мне возвращает ответ:
Failed to connect to ipaytest.arca.am port 8445: Connection refused
Но тот же самый запрос если я делаю просто в браузере как GET
запрос то мне возвращает желаемый ответ. Можете сказать что я делаю не так?
У меня сомнения на то что пароль в моем запросе не принимается сервером, потому что в нем содержаться специальные символы. Может такое быть?
Вот мой CURL
код на PHP
:
$args = array(
'userName' => 'test',
'password' => 'test',
'orderNumber' => '16_5',
'amount' => 1000,
'returnUrl' => SHOP_URL . '?wc-api=wc_acbapayment&acbapayment=result&order_id=' . $order_id . $extra_url_param,
);
$acbacurl = curl_init();
if ($acbacurl) {$this->acba_logger('276curl-yes');}else{$this->acba_logger('276curl-no');};
$c=curl_setopt_array($acbacurl, array(
CURLOPT_URL => $action_adr,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($args)
));
if( ! $response = curl_exec($acbacurl))
{
$this->acba_logger('285curl_error:'.curl_error($acbacurl));exit('Error '.curl_error($acbacurl));
}
//$response = curl_exec($acbacurl);
curl_close($acbacurl);
$response = json_decode($response, true);
А вот тот же самый запрос на GET
который работает нормально:
https://ipaytest.arca.am:8445/payment/rest/register.do?userName=test&password=test&orderNumber=16_12&amount=1000&returnUrl=https%3A%2F%2Fblog.studentstesting.com%2F%3Fwc-api%3Dwc_acbapayment%26acbapayment%3Dresult%26order_id%3D16%26wc-callb%3Dcallback_function
Если через браузер проходит,а браузер кодирует GET параметры,то и вам строит их кодировать при POST
запросе.Смотреть urlencode() функцию.
Для начала все это можно потестить элементарно,создав HTML форму и заполнить инпутами.
<form class="arca__form" action="https://ipaytest.arca.am:8445/payment/rest/register.do" method="post">
<?php
foreach ($args as $key => $value) {
echo "<input type='text' nmae='{$key}' value='".urlencode($value)."' />";
}
?>
<input type='submit'/>
</form>
Сделать Ajax запрос:
<script>
$('.arca__form').on('submit',function(e){
e.preventDfault();
$.ajax({
url: $(this).attr('action'),
mthod: $(this).attr('method'),
dataType: 'json',
data: $(this).serializeArray(),
success:function(data){
console.log(data);
}
});
});
</script>
И если получится то либо продолжать в этом духе,либо все это эмулировать через CURL.Тут я намекаю на посылаемые заголовки которые отправляются при form submit
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Построить программу, которая вводит координаты точки (x, y) и определяет, попадает точка в заштрихованную область на рисунке, который соответствует...