HTTP поставить через PHP-клиент - PullRequest
0 голосов
/ 23 июня 2018

Я пишу небольшое «приложение» для бухгалтерского сайта под названием Xena.biz

Система имеет API, который использует oAuth2 для подключения. Все, что я разобрался - я могу отлично получить информацию, которая мне нужна. Теперь мне нужно отправить строку PUT обратно Зене - вот где я не могу понять это.

Система построена на файле с именем XenaClient.php, который содержит все вызовы авторизации и все запросы.

Вот пример того, как я получаю информацию:

<?
require('XenaClient.php');
const CLIENT_ID     = 'SECRET';
const CLIENT_SECRET = 'VERY SECRET'; 
$xenaclient = new XenaOAuth2Client(CLIENT_ID, CLIENT_SECRET);
$xenaclient->setAccessToken($_COOKIE["MaskedCookieName"]);

$ordertask = $xenaclient->fetch('https://my.xena.biz/Api/Fiscal/'.$_GET["fiscal"].'/OrderTask/'.$_GET["orderId"]);
var_dump($ordertask);
?>

Но теперь я хочу отправить информацию через PUT. Согласно сценарию XenaClient.php, я должен использовать команду $ xenaclient-> fetch ($ url, $ parameters);

Так что это мой выстрел

require('XenaClient.php');
const CLIENT_ID     = 'SECRET';
const CLIENT_SECRET = 'VERY SECRET'; 
$xenaclient = new XenaOAuth2Client(CLIENT_ID, CLIENT_SECRET);
$xenaclient->setAccessToken($_COOKIE["MaskedCookieName"]);


$xenaclient->fetch('https://my.xena.biz/Api/Fiscal/96946/Order/243936250/Confirmation',array('ConfirmationDate'=>NULL,'ConfirmationReportLayoutId'=>261205291));
?>

Это ничего не меняет или не создает желаемого эффекта в системе учета. Сама Зена не поможет, поэтому я прошу вас, ребята, надеюсь, вы мне поможете.

Вот несколько указателей:

Ресурс API: https://dev.xena.biz

XenaClient.php: https://github.com/EG-BRS/Xena.ExampleApp.PHP/blob/master/XenaClient.php

1 Ответ

0 голосов
/ 23 июня 2018

XenoOAuth2Client :: fetch сообщает вам, что третий параметр функции выборки - хотя и необязательный - определяет метод запроса. По умолчанию ist GET (XenaOAuth2Client::HTTP_METHOD_GET), поэтому, если вы хотите PUT, вы должны явно предоставить соответствующий параметр PUT (другие методы см. константы класса XenoOAuth2Client :

$xenaclient->fetch(
    'https://my.xena.biz/Api/Fiscal/96946/Order/243936250/Confirmation',
    array('ConfirmationReportLayoutId'=>261205291),
    XenaOAuth2Client::HTTP_METHOD_PUT
);

большинство API сегодня используют json, возможно это должен быть json ...

$xenaclient->fetch(
    'https://my.xena.biz/Api/Fiscal/96946/Order/243936250/Confirmation',
    json_encode(array('ConfirmationReportLayoutId'=>261205291)),
    XenaOAuth2Client::HTTP_METHOD_PUT
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...