Parameter Почему параметр oauth_callback не перенаправляет? (интуитивные быстрые книги api - oauth1.0a) - PullRequest
0 голосов
/ 02 мая 2018

У меня проблема с запросом oauth, сейчас я получаю

oauth_token_secret=<Token>&oauth_token=<Token>&oauth_callback_confirmed=true

Но он никогда не перенаправляет переменные для выполнения следующего шага.

Я передаю oauth_callback с помощью urlencode () php, конечно, я уже пытался передать его без кодировки процентов, и все еще не работает ...

Этот URL обратного вызова имеет двойное процентное кодирование с помощью php urlencode () в кодировке HMAC-SHA1. Кстати, это единственный способ получить токены обратно, в противном случае он возвращает подпись недействительной.

Я уже оставил вопрос в разделе разработчиков поддержки API, но нет ответа.

¿Что здесь может происходить?

Этот API от интуитивных быстрых книг

Url sample:

https%3A%2F%2FMyWeb.com%2FMyController

Это пример кода для HMAC-SHA1

// HMAC-SHA1 encoding to get the tokens from quickbooks Api

$callback = urlencode('https://MyWeb.com/MyController'); // First urlencode of the callback url set on the grantUrl setup()


$action = 'GET'; // The Action to perform the request
$action .= '&'; // Append an &
$action .= urlencode('https://oauth.intuit.com/oauth/v1/get_request_token'); // Append the baseUrl request url encoded
$action .= '&'; // Append an &
$action .= urlencode('oauth_callback=' . $callback . '&oauth_consumer_key=<consumerKey>&oauth_nonce=<nonce>&oauth_signature_method=HMAC-SHA1&oauth_timestamp=<timestamp>&oauth_version=1.0'); // Append Parameters url encoded (callbak must be encoded twice)

$secretKey = urlencode('keyHere'); // Set the secretKey urlEncoded
$secretKey .= '&'; // Append an &

$resultant = base64_encode(hash_hmac('sha1', $action, $secretKey, TRUE)); // Get the hash_hmac with a base64_encode.

$f_result = urlencode($resultant); // url encode the $resultant to put it as the signature

Это URL запроса

https://oauth.intuit.com/oauth/v1/get_request_token?oauth_callback=https%3A%2F%2FMyWeb.com%2FMyController&oauth_consumer_key=<ConsumerKey>&oauth_nonce=<nonce>&oauth_signature_method=HMAC-SHA1&oauth_timestamp=<timestamp>&oauth_version=1.0&oauth_signature=E0SagYvSY6wxpjp2QRIIP%2Bmz%2Fiw%3D

Это выполняется с помощью кнопки, сгенерированной javascript, в соответствии с документами API.

это образец:

<script
        type="text/javascript"
        src="https://appcenter.intuit.com/Content/IA/intuit.ipp.anywhere-1.3.3.js">
</script>
<!-- Implement the setup function for the connect button -->
<script>
intuit.ipp.anywhere.setup({
    grantUrl: 'queryUrl post above',
            datasources: {
            quickbooks : true,
            payments : true
            },
            paymentOptions:{
                intuitReferred : true
            }
});
</script>
...