2016-04-10 10 views
0

Ich glaube nicht, dass ich OAuth brauchenAuthentifizieren Quickbooks API

Dann wieder, was weiß ich

Alles, was ich tun möchte, ist jemand Kreditkartendaten nehmen und sie aufladen. Ich greife nicht auf die QuickBooks-Konten anderer Personen zu (nur meine eigenen), und ich versuche nicht, auf andere persönliche Informationen zuzugreifen als auf die, die sie in mein Formular eingeben. Aus diesem Grund scheint es absolut falsch zu denken, dass ich sie auf intuit.com umleiten und sie durch eine OAuth-Eingabeaufforderung zwingen müsste (welcher Account würde sie sogar autorisieren? Sie haben wahrscheinlich kein QuickBooks-Konto)

Ich habe die letzte Stunde damit verbracht, die API-Dokumentation von QuickBook durchzulesen, und ich bin im Kreis gelaufen und habe die ganze Sache als völlig verwirrend empfunden. Auf jeder Seite, die auf einen bestimmten API-Endpunkt verweist, wird die Authentifizierung nicht erwähnt - nur die erwarteten Header, Abfrageparameter und Anforderungshauptteile. Die API-Explorer zeigt keine Form der Authentifizierung in ihre Beispiele:

QuickBooks API Explorer

Keine Grund Auth-Header, nichts in der Anfrage Körper mit einem API-Token, .. nichts

Überprüfen der Konsole, während Schlagen Einreichen ist nicht hilfreicher. Die Anfrage wird an ihrem Back-End-Server gesendet, wo es macht die echten Anfrage:

QuickBooks API Explorer (Chrome Console)

Es gibt sogar „apikey“, „apisecret“ und „oauth“ Attribute im Körper enthält, die alle sind leer - es verhält sich so, als ob der Endpunkt nicht einmal eine Authentifizierung benötigt.

Aus stummer Neugier habe ich versucht, die Anfrage ohne Authentifizierung zu machen, um zu sehen, was passieren würde:

cURL Failed

401 nicht autorisierte. So einige Authentifizierung wird benötigt. Ich fuhr fort, die Dokumente zu durchsuchen und drehte nichts außer page nach page mich zurück zu OAuth und sagen, dass ich OAuth einrichten muss. Warum muss ich OAuth so einrichten, dass eine Kreditkartennummer, die mir gegeben wurde, an QuickBooks übergeben wird?

Ich habe sogar versucht, ihre Beispiel-App zu betrachten. Das "Nimm den Code für eine Probefahrt" (https://developer.intuit.com/v2/ui#/emulator?workflow=ecommerce) war absolut wertlos. Es gab mir nur einigen Pseudo-Code mit null Idee, wie die Authentifizierung umgehen:

QuickBooks tutorials are terrible

Ich sah auch bei the actual code und sehe nicht überall, dass sie einen API-Schlüssel oder Geheimschlüssel zur Verfügung stellen.

Ich zerreiße mir zu diesem Zeitpunkt ziemlich die Haare, deshalb denke ich, dass ich jemanden mit Erfahrung brauche, der mich in die richtige Richtung weist.

Antwort

2

Ich glaube nicht, dass ich OAuth brauchen

Sie tun.

Aus diesem Grund ist es absolut idiotisch scheint zu denken, dass ich sie zu intuit.com und sie durch eine OAuth Prompt

zwingen umleiten müssen Sie würden falsch verstehen, was OAuth ist, und wie wird es verwendet .

OAuth wird verwendet, um IHRE Authentifizierungsmarker zu erhalten, damit sich IHRE FIRMA bei Intuit authentifizieren und sich identifizieren kann, sodass Sie Kundenkreditkarten belasten können. Sie werden auf die Intuit-Website weitergeleitet, um sich EINMAL und NUR EINMAL und NIEMALS NEU zu authentifizieren.

Sie speichern die Token, die Sie erhalten, aus dem einmaligen OAuth-Popup-Fensterprozess und verwenden Sie diese für alle zukünftigen HTTPS-Anfragen.

Der Endbenutzer (d. H. Ihr Kunde) wird NICHT umgeleitet.

Wenn Sie mit etwas wie Authorize.net oder anderen Webdiensten vertraut sind, wo Sie einen Webbrowser öffnen und auf eine Website gehen und einen geheimen Schlüssel/API-Token in Ihren Code kopieren, dann ist dies der Genau derselbe Prozess außer Anstatt sich einzuloggen und manuell ein API-Token/einen Schlüssel zu kopieren/einzufügen, melden Sie sich an und der OAuth-Prozess gibt Ihnen automatisch den API-Token/-Schlüssel programmatisch.

+0

Ich habe mich hingesetzt, um die OAuth-Integration mit [PHPoAuthLib] (https://github.com/Lusitanian/PHPoAuthLib) nach Ihren Kommentaren und nach [ihrem Beispiel] (https://github.com/Lusitanian /PHPoAuthLib/blob/master/examples/quickbooks.php) Ich konnte direkt nach der Genehmigung meiner App eine einzelne API-Anfrage machen, jedoch konnte ich niemals eine zweite Anfrage stellen, ohne die App erneut zu autorisieren. Ich speicherte 'oauth_token',' oauth_verifier' und 'realmId' (die von QuickBooks zurückgegeben wurden) und versuchte, sie wieder zu verwenden, aber 401 Unauthorized :(Irgendwelche Gedanken? – stevendesu

+0

Da diese Antwort mir viel näher kam als zuvor, gehen Sie weiter und markieren dies als die richtige Antwort - wird eine neue Frage für meine neue Frage stellen – stevendesu

Verwandte Themen