Как получить подтверждение и реальный ответ после отправки запроса в cURL PHP - PullRequest
0 голосов
/ 26 мая 2019

Я отправляю запрос в конечную точку API, которая должна возвращать ответ на основе информации, которую я отправил. Я получаю подтверждение успеха, но ожидаемая информация не возвращается.

мой запрос cURL указан в приведенном ниже коде, я попытался изменить время ожидания. также проверил tcpdump на онлайн-сервере: tcpdump имеет ожидаемый ответ, но все еще не может отображаться на странице php.

на локальном хосте я использовал wireshark для отслеживания запроса и ответа, но на Wireshark я не вижу ожидаемых результатов, а также не отображается на странице при печати ответа

Примечание: ответ - это XML, который должен выглядеть следующим образом

        $API_endpoint = "http://xxx.xxx.xx.xx:80/api/bill/sigqrequest";

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $API_endpoint);
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 20);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type:application/xml',
            'g-Com:default.sp.in',
            'g-Code:SP172',
            'Content-Length:' . strlen($payload)

        ));
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');


        $response = curl_exec($ch);

echo $response;

я ожидаю

    <BillSubResp>
        <BillTrxInf>
            <BillId>MC_2019_27</BillId>
            <PayCntrNum>0</PayCntrNum>
            <TrxSts>GF</TrxSts>
            <TrxStsCode>7223;7201</TrxStsCode>
        </BillTrxInf>
    </BillSubResp>
    <Signature>CT3r/yvVSB9dnbD59LNare2nhwWQq2vCtamcMw==</Signature>

и я получаю

<BillSubReqAck>
    <TrxStsCode>7101</TrxStsCode>
</BillSubReqAck>
<Signature>QxabtcSqgr08g</Signature>

это просто подтверждение.

Что я делаю не так?

Request-Ack

Я хочу получить ответ, и вместо этого я получаю это подтверждение от удаленной системы. и на tcpdump на моем онлайн-сервере я иногда вижу ответ и все еще не отображается на моей странице, когда я повторяю ответ

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