以文本方式查看主题

-  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
--  
之前好像见你发过的,后来编辑帖子去掉了。官方没有提供接口实例吗