我正在转换应用程序以使用IPP .net API V3。我已经构建了所有OAuth并保存了令牌信息。尝试建立连接但总是出错。我检查并重新检查了所有令牌数据,看起来是正确的。我哪里做错了?我正在使用NuDeet的DevDefined for OAuth和Intuit.Ipp(IPP API V3)。我正在使用我的测试客户令牌信息,但注意到基本URL(来自IPP库)是https://quickbooks.api.intuit.com/。这应该还行吗?
Dim accessToken As String = QBOE.GetOAuthItem(Profile.Common.StoreNum, "accessToken")
Dim accessTokenSecret As String = QBOE.GetOAuthItem(Profile.Common.StoreNum, "accessTokenSecret")
Dim consumerKey As String = ConfigurationManager.AppSettings("consumerKey")
Dim consumerSecret As String = ConfigurationManager.AppSettings("consumerSecret")
Dim oauthValidator As OAuthRequestValidator = New OAuthRequestValidator(accessToken, accessTokenSecret, consumerKey, consumerSecret)
Dim CompanyID As String = QBOE.GetOAuthItem(Profile.Common.StoreNum, "CompanyID")
Dim appToken As String = ConfigurationManager.AppSettings("applicationToken")
Dim context As ServiceContext = New ServiceContext(appToken, CompanyID, IntuitServicesType.QBO, oauthValidator)
Dim service As DataService = New DataService(context)
Dim customer As Customer = New Customer()
'Mandatory Fields
customer.GivenName = "Mary"
customer.Title = "Ms."
customer.MiddleName = "Jayne"
customer.FamilyName = "Cooper"
Dim resultCustomer As Customer = TryCast(service.Add(customer), Customer)
错误消息(service.Add上的错误) Intuit.Ipp.Exception.InvalidTokenException未被用户代码
处理我检查了fiddler2内的电话,注意到我的OAuth的电话是通过workplace.intuit.com:443,但是IPP电话通过quickbooks.api.intuit.com:443。我还注意到fiddler2列出了IPP调用,结果为200.输出如下所示。
的HeaderText: CONNECT quickbooks.api.intuit.com:443 HTTP / 1.1 主持人:quickbooks.api.intuit.com 代理连接:保持活跃
发送的数据表示与SSLv3兼容的ClientHello握手。为方便起见,下面提取了数据。
主要版本:3 次要版本:1 随机:53 2E 7C 6E A1 F4 02 4D 9D CF 60 C8 22 CA BC E8 67 6E D8 52 88 54 6F E7 D9 29 52 58 5C 2F 2E 52 SessionID:9E 01 CB DB D6 C8 78 8D D0 E9 A6 5F 02 1E 2C 6D 5D 69 34 FE FD 3E A5 52 EE 19 07 E7 D9 D6 E5 30 密码: [002F] TLS_RSA_AES_128_SHA [0035] TLS_RSA_AES_256_SHA [0005] SSL_RSA_WITH_RC4_128_SHA [000A] SSL_RSA_WITH_3DES_EDE_SHA [C013] TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA [C014] TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA [C009] TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA [C00A] TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA [0032] TLS_DHE_DSS_WITH_AES_128_SHA [0038] TLS_DHE_DSS_WITH_AES_256_SHA SSL_DHE_DSS_WITH_3DES_EDE_SHA [0004] SSL_RSA_WITH_RC4_128_MD5
回复文字: 建立HTTP / 1.1 200盲连接 FiddlerGateway:直接 StartTime:01:17:18.298 结束时间:01:17:18.536
这是一个CONNECT隧道,加密的HTTPS流量通过该隧道流动。要查看此隧道内的加密会话,请确保工具>提琴手选项> HTTPS>检查解密HTTPS流量选项。
发送的数据表示与SSLv3兼容的ServerHello握手。为方便起见,下面提取了数据。
主要版本:3 次要版本:1 SessionID:9E 01 CB DB D6 C8 78 8D D0 E9 A6 5F 02 1E 2C 6D 5D 69 34 FE FD 3E A5 52 EE 19 07 E7 D9 D6 E5 30 随机:63 E2 D0 B1 09 45 E0 28 A4 3B 0B C2 E8 5F 08 F0 D5 F5 8E A7 47 D4 10 E2 D4 D7 5B C4 74 0B 4B E2 密码:0x05
答案 0 :(得分:1)
您可以使用IPP提供的.net devkit尝试此调用,如以下文档中所述。
401清楚地表示您的OAuth令牌/请求标头不正确。 要调试它,您可以使用任何标准RestClients(如Mozilla浏览器或Fiddler的RestClient插件),您可以在其中设置四个OAuth令牌[使用者密钥,消费者密钥,访问密钥和访问令牌)和内容类型[application / xml] < / p>
Mozilla RestClient -
设置OAuth令牌
设置内容类型(在标题中)
如果上述方法有效,则表示您的OAuth令牌没问题。您需要使用devdefined然后检查并正确构造标头。
如果它不起作用,那么你需要使用IPP OAuth Playground生成一组新的访问令牌和秘密。
https://appcenter.intuit.com/Playground/OAuth
由于