问:如何获取单个商品的commission_num ?
taobao.taobaoke.items.get 是可以获取的,
taobao.taobaoke.items.detail.get 获取不到,没有这个字段,
应该通过哪个API 如何获取?
答:使用接口taobao.taobaoke.widget.items.convert,该接口只支持js方式去调用,
具体的调用方式参考文档【http://open.taobao.com/doc/detail.htm?id=101372】。
签名部分的代码,具体可以参考下demo【http://open.taobao.com/doc/detail.htm?spm=0.0.0.36.ZGmP8N&id=101373】
问题已经解决:写出来给大家参考。
比如我的页面文件是:Detail.aspx
第一步:在Detail.aspx.cs 文件中加入以下代码 ,在 Page_Load 方法中加入 SetCookie();
1 #region 签名 2 3 protected void SetCookie() 4 { 5 if (Page.IsPostBack) 6 return; 7 String appkey = MyAppKey ;//"您的appkey";填写appkey 8 String secret = MyAppSecret;//"appkey的secret";填写应用的secret 9 //取到当前时间的离1970的毫秒数,下面代码中的转换主要是与服务器端的时间一致 10 long timestamp = Decimal.ToInt64(Decimal.Divide(DateTime.Now.Ticks - new DateTime(1970, 1, 1, 8, 0, 0).Ticks, 10000)); 11 Console.WriteLine("timestamp" + timestamp); 12 //拼装消息 13 String message = secret + "app_key" + appkey + "timestamp" + timestamp + secret; 14 //签名消息 15 String sign = signByHmacMd5(message, secret); 16 //添加时间戳到cookie 17 addCookie("timestamp", timestamp.ToString()); 18 //添加签名到cookie 19 addCookie("sign", sign); 20 } 21 22 ///添加数据到cookie中,name=value 23 protected void addCookie(String name, String value) 24 { 25 HttpCookie cookie = new HttpCookie(name, value); 26 Response.Cookies.Add(cookie); 27 } 28 29 ///对message用secret进行hmac-md5签名 30 ///返回签名值 31 protected String signByHmacMd5(String message, String secret) 32 { 33 34 HMACMD5 hmacMD5 = new HMACMD5(Encoding.UTF8.GetBytes(secret)); 35 36 // Convert the input string to a byte array and compute the hashamc. 37 byte[] data = hmacMD5.ComputeHash(Encoding.UTF8.GetBytes(message)); 38 39 // Create a new Stringbuilder to collect the bytes 40 // and create a string. 41 StringBuilder sBuilder = new StringBuilder(); 42 43 // Loop through each byte of the hashed data 44 // and format each one as a hexadecimal string. 45 for (int i = 0; i < data.Length; i++) 46 { 47 sBuilder.Append(data[i].ToString("X2")); 48 } 49 50 // Return the hexadecimal string. 51 return sBuilder.ToString(); 52 } 53 54 #endregion
第二步:在Detail.aspx页面中加入 <asp:HiddenField ID="hidnumiid" runat="server" /> 控件,保存当前页面所需要访问的商品id ,同时设定一个 <span id='r_商品ID'>这里会显示已售数量</span>
第三步:在文件底部加入这段代码,设置好 appkey ,这样就大功告成。很简单吧。
1 <script type="text/javascript" src="http://a.tbcdn.cn/apps/top/x/sdk.js?appkey=myappkey"></script> 2 <script language="javaScript"> 3 $(document).ready(function() { 4 var numiid = $('#hidnumiid').val(); 5 TOP.api({ 6 method: 'taobao.taobaoke.widget.items.convert', 7 num_iids: numiid, 8 fields: 'num_iid,commission_num' 9 }, function(resp) { 10 if (resp.error_response) { 11 //alert('taobao.taobaoke.widget.items.convert接口获取商信息品失败!' + resp.error_response.msg); 12 return false; 13 } 14 var respItem = resp.taobaoke_items.taobaoke_item; 15 for (var i = 0; i < respItem.length; i++) { 16 $("#r_" + respItem[i].num_iid).html(respItem[i].commission_num); 17 //alert(respItem[i].num_iid+"购买次数:" + respItem[i].commission_num); 18 } 19 }); 20 }); 21 </script>
总结:
1、注意签名;
2、javascript方法不要写错;
3、引入<script type="text/javascript" src="http://a.tbcdn.cn/apps/top/x/sdk.js?appkey=MyAppkey"></script>
其他的设置淘宝登陆、购物车组件,都是同样的道理、同样的步骤。
随便写写,希望需要开发的朋友少走弯路。