以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- [求助] 提示未定类型"clsHS256" (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=124122) |
-- 作者:haipo -- 发布时间:2018/8/31 2:09:00 -- [求助] 提示未定类型"clsHS256" [此贴子已经被作者于2018/8/31 10:49:51编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/8/31 9:06:00 -- 1、使用调试器调试
https://mws.amazonservices.com.cn/scratchpad/index.html
2、认认真真看文档,整体看完理解,你再测试吧,你现在根本什么都不懂
https://developer.amazonservices.com.cn/ |
-- 作者:haipo -- 发布时间:2018/9/1 1:58:00 -- 我把文档又认真看了一遍,然后用网页版的sh256和之前的代码算出的结果一致,但是怎么都算不出人家调试器给的值。 |
-- 作者:有点蓝 -- 发布时间:2018/9/1 8:37:00 -- 把你的代码和用法贴出来 |
-- 作者:haipo -- 发布时间:2018/9/1 10:29:00 -- Dim hc As New HttpClient("https://mws.amazonservices.com") Dim xmlsj As String = hc.GetData() Dim doc As New Xml.XmlDocument doc.LoadXml(xmlsj) Dim sURL As String = "https://mws.amazonservices.co.uk/Orders/2013-09-01" Dim sRequest As String = "" sRequest &= "AWSAccessKeyId=" & UrlEncode("remove") sRequest &= "&Action=" & UrlEncode("ListOrders") sRequest &= "&CreatedAfter=" & UrlEncode("2018-09-01T01:51:17Z").ToUpper() sRequest &= "&MWSAuthToken=" & UrlEncode("remove") sRequest &= "&MarketplaceId.Id.1=" & UrlEncode("A1F83G8C2ARO7P") sRequest &= "&OrderStatus.Status.1=" & UrlEncode("Unshipped") sRequest &= "&OrderStatus.Status.2=" & UrlEncode("PartiallyShipped") sRequest &= "&SellerId=" & UrlEncode("remove") sRequest &= "&SignatureMethod=" & UrlEncode("HmacSHA256") sRequest &= "&SignatureVersion=" & UrlEncode("2") sRequest &= "&Timestamp=" & UrlEncode(doc.DocumentElement.FirstChild.Attributes.GetNamedItem("timestamp").Value).ToUpper().Remove(23,4) sRequest &= "&Version=" & UrlEncode("2013-09-01") Dim StringToSign As String = "GET\\n" & "mws.amazonservices.co.uk\\n" & "/Orders/2013-09-01\\n" & sRequest output.show(StringToSign) Dim myEncoder As New System.Text.UTF8Encoding Dim Key() As Byte = myEncoder.GetBytes("remove") Dim XML() As Byte = myEncoder.GetBytes(StringToSign) Dim myHMACSHA256 As New System.Security.Cryptography.HMACSHA256(Key) Dim HashCode As Byte() = myHMACSHA256.ComputeHash(XML) Dim result = Convert.ToBase64String(HashCode) ‘和调试器输出的结果不一致,调试器使用POST,代码用的GET Dim s As String = result Dim b As new StringBuilder For Each c As Char In s Dim v As String = UrlEncode(c) If v.Length > 1 Then b.Append(UrlEncode(c).ToUpper()) Else b.Append(c) End If Next Output.Show(b.ToString) Dim qm As String = b.ToString sRequest &= "&Signature=" & qm Dim URL As String = sURL & "?" & sRequest Dim xmlorders As New HttpClient(URL) Dim str As String = xmlorders.GetData() Output.Show(str) 调试器:https://mws.amazonservices.co.uk/scratchpad/index.html,不考虑最终的请求,在调试器里输入remove也可以算出base64, 调试器用的是POST,代码用的GET |
-- 作者:有点蓝 -- 发布时间:2018/9/1 11:04:00 -- 接口说明的链接发上来看看 |
-- 作者:haipo -- 发布时间:2018/9/1 11:06:00 -- http://docs.developer.amazonservices.com/zh_CN/dev_guide/DG_ClientLibraries.html |
-- 作者:有点蓝 -- 发布时间:2018/9/1 14:50:00 -- 官方接口vb.net的例子发上来 |
-- 作者:haipo -- 发布时间:2018/9/1 15:21:00 -- 这个没有啊 |
-- 作者:有点蓝 -- 发布时间:2018/9/1 15:35:00 -- 之前好像见你发过的,后来编辑帖子去掉了。官方没有提供接口实例吗 |