Не удалось проверить на POST, чтобы добавить контакты в XERO - PullRequest
0 голосов
/ 05 октября 2018

Мы пытаемся интегрироваться с Xero с помощью PHP.Похоже, мы застряли при попытке добавить простой контакт, используя следующий код:

Что у нас пока нет:

  1. Получить токен неавторизованного запроса - Работает
  2. Перенаправление пользователя - Works
  3. Замена токена запроса на токен доступа - Works
  4. Подключение к Xero API - Works
  5. Получить контакт, используя ('https://api.xero.com/api.xro/2.0/Contacts’) - Работает
  6. POST-контакт с использованием ('https://api.xero.com/api.xro/2.0/Contacts’) - Возвращает ошибку auth_problem = signature_invalid & oauth_problem_advice = Failed% 20to% 20validate% 20signature

нижекод до сих пор используется для этой функции. Если кто-то из вас мог бы помочь нам с этим начальным шагом, это было бы чрезвычайно полезно.

$url_xero = 'https://api.xero.com/api.xro/2.0/Contacts';

$data = "{ \r\n  Name: HFG Limited  \r\n  }";
$data_json = json_encode($data);

$consumer = new OAuthConsumer($xero_consumer_key, $xero_consumer_secret);
$access_token2 = new OAuthToken($oauth_token_final, $oauth_token_secret_final);

$request = OAuthRequest::from_consumer_and_token($consumer, 
$access_token2,'POST', $url_xero, array('Content-Type: application/json','Content-Length: ' . strlen($data_json)));
$request->sign_request(new OAuthSignatureMethod_HMAC_SHA1(), $consumer, $access_token2);

$headers = array($request->to_header());

$ch = curl_init();

curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url_xero);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$rsp = curl_exec($ch);
$info = curl_getinfo($ch);

$results = json_decode($rsp);

if ($rsp === false) {
throw new Exception(curl_error($ch), curl_errno($ch));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...