开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1357|回复: 5
收起左侧

[已解决] Tao宝API sign签名问题,望高人指点!谢谢!

 关闭 [复制链接]
结帖率:29% (8/28)
发表于 2019-6-5 22:50:32 | 显示全部楼层 |阅读模式   广东省汕尾市
20精币
调用示例

taobao.item.seller.get调用为例,具体步骤如下:

1. 设置参数值

公共参数:

  • method = “taobao.item.seller.get”
  • app_key = “12345678”
  • session = “test”
  • timestamp = “2016-01-01 12:00:00”
  • format = “json”
  • v = “2.0”
  • sign_method = “md5”

业务参数:

  • fields = “num_iid,title,nick,price,num”
  • num_iid = 11223344

2. 按ASCII顺序排序

  • app_key = “12345678”
  • fields = “num_iid,title,nick,price,num”
  • format = “json”
  • method = “taobao.item.seller.get”
  • num_iid = 11223344
  • session = “test”
  • sign_method = “md5”
  • timestamp = “2016-01-01 12:00:00”
  • v = “2.0”

3. 拼接参数名与参数值

淘客签约算法 错误.png


淘客签名算法说明:https://open.taobao.com/doc.htm?docId=101617&docType=1

以上是易语言写的代码, 最终生成出来的算法不对. 请问哪里写错的呢?


最佳答案

查看完整内容

兄弟。你这样写一个接口太累了。 用我的这个类吧。你加一个新的接口,很简单的 具体写一个新的API。你参考里面的 【淘口令生成】 这个是一个可以使用的类。里面要用到精易模块

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:100% (3/3)

签到天数: 6 天

发表于 2019-6-5 22:50:33 | 显示全部楼层   广东省佛山市
兄弟。你这样写一个接口太累了。
用我的这个类吧。你加一个新的接口,很简单的

  1. .版本 2

  2. .程序集 类_TopSdk
  3. .程序集变量 appkey, 文本型
  4. .程序集变量 appsecret, 文本型
  5. .程序集变量 TopServer, 文本型
  6. .程序集变量 session, 文本型
  7. .程序集变量 webcookie, 文本型

  8. .子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用



  9. .子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用



  10. .子程序 初始化, , 公开
  11. .参数 appkey_, 文本型
  12. .参数 appsecret_, 文本型
  13. .参数 useHttps, 逻辑型, 可空
  14. .参数 session_, 文本型, 可空

  15. appkey = appkey_
  16. appsecret = appsecret_
  17. .如果 (是否为空 (useHttps) 或 useHttps)
  18.     TopServer = “https://eco.taobao.com/router/rest?”
  19. .否则
  20.     TopServer = “http://gw.api.taobao.com/router/rest?”
  21. .如果结束
  22. session = session_


  23. .子程序 淘口令生成, 文本型, 公开
  24. .参数 text, 文本型, , 口令弹框内容
  25. .参数 url, 文本型, , 口令跳转目标页
  26. .参数 logo, 文本型, 可空, 口令弹框logoURL
  27. .参数 ext, 文本型, 可空, 扩展字段JSON格式
  28. .参数 user_id, 文本型, 可空, 生成口令的淘宝用户ID 通过淘口令加好友,一般用不上吧。
  29. .局部变量 params, 文本型
  30. .局部变量 args, 文本型, , "0"
  31. .局部变量 webText, 文本型

  32. ' user_id
  33. 加入成员 (args, “method=taobao.tbk.tpwd.create”)
  34. 加入成员 (args, “url=” + url)
  35. 加入成员 (args, “text=” + text)
  36. 加入成员 (args, “logo=” + 选择 (logo = “”, “[img]https://img.alicdn.com/tfs/TB1_uT8a5ERMeJjSspiXXbZLFXa-143-59.png[/img]”, logo))
  37. 加入成员 (args, “ext=” + 选择 (ext = “”, “{}”, ext))
  38. 加入成员 (args, “user_id=” + user_id)
  39. params = signParams (args)
  40. webText = http_Post (TopServer, params)
  41. 返回 (webText)

  42. .子程序 signParams, 文本型
  43. .参数 args, 文本型, 数组, 不同的API有不参的参数,这里的结构不要有=号。比如 page=5应该传 page5
  44. .局部变量 params, 文本型
  45. .局部变量 i, 整数型
  46. .局部变量 signstr, 文本型
  47. .局部变量 temp, 文本型
  48. .局部变量 left, 文本型
  49. .局部变量 right, 文本型

  50. 加入成员 (args, “app_key=” + appkey)
  51. 加入成员 (args, “format=json”)
  52. 加入成员 (args, “sign_method=md5”)
  53. 加入成员 (args, “v=2.0”)
  54. 加入成员 (args, “session=” + session)
  55. 加入成员 (args, “timestamp=” + 时间_到文本 (取现行时间 (), 1, ))

  56. .计次循环首 (取数组成员数 (args), i)
  57.     left = 文本_取左边 (args [i], “=”)
  58.     right = 子文本替换 (args [i], left + “=”, , , , 真)
  59.     .判断开始 (left = “url” 或 left = “logo” 或 left = “text”)

  60.         params = params + left + “=” + 编码_URL编码 (right, 真, 真) + “&”
  61.         args [i] = left + 编码_gb2312到utf8 (right)
  62.     .默认

  63.         params = params + left + “=” + right + “&”
  64.         args [i] = left + right  ' 去掉。里面是用不上的
  65.     .判断结束




  66. .计次循环尾 ()
  67. 数组_排序 (args, , )

  68. .计次循环首 (取数组成员数 (args), i)
  69.     ' 因为上面的排序有点问题。page和page_size先放pagesize在前面了。会导致签名失败
  70.     .如果真 (取文本左边 (args [i], 9) = “page_size”)
  71.         .如果真 (i < 取数组成员数 (args))
  72.             .如果真 (取文本左边 (args [i + 1], 4) = “page”)
  73.                 ' 调换位置
  74.                 temp = args [i]
  75.                 args [i] = args [i + 1]
  76.                 args [i + 1] = temp
  77.             .如果真结束

  78.         .如果真结束

  79.     .如果真结束
  80.     signstr = signstr + args [i]
  81. .计次循环尾 ()
  82. params = params + “&sign=” + 校验_取md5_文本 (appsecret + signstr + appsecret, 假, 真, )
  83. 返回 (params)

  84. .子程序 http_Post, 文本型, , post cookie使用类变量webcookie sdk统一使用一个访问接口避免模块BUG
  85. .参数 url, 文本型
  86. .参数 postdata, 文本型
  87. .参数 isUtf8, 逻辑型, 可空

  88. .如果真 (是否为空 (isUtf8))
  89.     isUtf8 = 真
  90. .如果真结束
  91. .如果 (isUtf8)
  92.     返回 (编码_Utf8到Ansi (网页_访问_对象 (url, 1, postdata, webcookie, webcookie)))
  93. .否则
  94.     返回 (到文本 (网页_访问_对象 (url, 1, postdata, webcookie, webcookie)))
  95. .如果结束


  96. .子程序 http_Get, 文本型
  97. .参数 url, 文本型
  98. .参数 isUtf8, 逻辑型, 可空
  99. .局部变量 max, 整数型
  100. .局部变量 i, 整数型

  101. .如果真 (是否为空 (isUtf8))
  102.     isUtf8 = 真
  103. .如果真结束

  104. .如果 (isUtf8)
  105.     返回 (编码_Utf8到Ansi (网页_访问_对象 (url, , , webcookie, webcookie)))
  106. .否则
  107.     返回 (到文本 (网页_访问_对象 (url, , , webcookie, webcookie)))
  108. .如果结束


复制代码

具体写一个新的API。你参考里面的 【淘口令生成】 这个是一个可以使用的类。里面要用到精易模块
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 1 天

发表于 2019-6-6 00:52:49 | 显示全部楼层   广东省汕头市
生成完成后 提交时  地址里面的参数 要跟计算时一致
回复

使用道具 举报

结帖率:29% (8/28)

签到天数: 3 天

 楼主| 发表于 2019-6-6 08:52:14 | 显示全部楼层   广东省汕尾市
明明明明 发表于 2019-6-6 00:52
生成完成后 提交时  地址里面的参数 要跟计算时一致

我写的代码时间是一致了,但是一直无法算出来,能帮看下代码哪里不对吗?
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 6 天

发表于 2019-6-6 16:12:20 | 显示全部楼层   广东省佛山市
怕你不会。还是把这个写了吧

  1. .版本 2

  2. .子程序 Taobao_Item_Seller_Get, 文本型, 公开
  3. .参数 num_iid, 文本型
  4. .局部变量 params, 文本型
  5. .局部变量 args, 文本型, , "0"
  6. .局部变量 webText, 文本型

  7. ' user_id
  8. 加入成员 (args, “method=taobao.item.seller.get”)
  9. 加入成员 (args, “fields=num_iid,title,nick,price,num”)
  10. 加入成员 (args, “num_iid=” + num_iid)
  11. params = signParams (args)
  12. webText = http_Post (TopServer, params)
  13. 返回 (webText)
复制代码

这个需要用到session,所以初始化的时候要带上sessionkey,另外。有些APP是没有这个API的权限的。
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 6 天

发表于 2019-6-6 16:14:15 | 显示全部楼层   广东省佛山市

  1. .版本 2
  2. .支持库 spec

  3. .子程序 __启动窗口_创建完毕
  4. .局部变量 top, 类_TopSdk

  5. top.初始化 (“你的KEY”, “你的KEY对应密匙”, 真, “你的授权”)
  6. 调试输出 (top.淘口令生成 (“测试用试用”, “https://uland.taobao.com/coupon/edetail?itemId=0&sellerId=1089900296&activityId=cd5d46dc1af241fa8c43e2f76b9aed4d”))
  7. 调试输出 (top.Taobao_Item_Seller_Get (“591028736907”))

复制代码

上面就是调用的例子了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表