Ошибка аутентификации при вызове службы событий Orange Product Order - PullRequest
0 голосов
/ 24 сентября 2018

Мы реализуем API бизнес-приложений Orange.Для этого нам нужно позвонить в службу Orange.Эта служба имеет аутентификацию типа канала передачи (Oauth2).Я могу успешно получить токен доступа, и срок действия токена доступа составляет 90 дней.Используя последний токен доступа, я попытался вызвать службу Orange, отправив токен доступа в заголовке, но каждый раз получая ошибку несанкционированного доступа.

Here is code

public static function sendEventProductOrder($eventProductOrdering) {

        $jsonMapper = new JsonMapper();

        $opts = array('http' => array('method'=>'POST',
                                        'header'=>'Content-type: application/x-www-form-urlencoded\r\n'.'Authorization: Bearer xxxxxxxxxxxxxxxxx\r\n',
                                        'content' => json_encode($jsonMapper->unmap($eventProductOrdering)),

        ));

        $context = stream_context_create($opts);

        if (($stream = fopen("https://api.orange.com/mba/productordering/v2/event", 'r', false, $context)) !== false) {
            $content = stream_get_contents($stream);
            $header = stream_get_meta_data($stream);
            fclose($stream);
            return HelperMisc::isEqualIgnoreCase($header['wrapper_data']['0'], 'HTTP/1.1 201 Created');
        }

        return false;
    }

Может ли кто-нибудь помочь мне в этом?

Спасибо за помощь!

1 Ответ

0 голосов
/ 24 сентября 2018

Можете ли вы изменить котировку ' на "?Например:

$requestArray = [
    'name' => 'User',
    'age'  => 100
];

'header'  => "Content-type: application/x-www-form-urlencoded\r\n" .
             "Authorization: Bearer xxxxxxxxxxxxxxxxx\r\n",
'content' => http_build_query($requestArray)

Поскольку \r\n не работает внутри одной кавычки ', она отправляет "как есть"

...