• 沙里软件

  • ShaliSoft.com [手机站]   办公桌收纳抽屉
  • 首页
  • 博文
  • 演示
  • 管理
  • ASP语言使用淘宝接口遇中文字符签名失败解决方法

    网络   2015/9/19 23:17:39

    由于淘宝没提供ASP的SDK,所以调用接口得自己写程序解决。

    淘宝API的使用都不多说了,主要是官方提供的签名例子是英文的,没牵涉到中文,只说明了签名后提交拼接的字符串要用utf-8编码,其实这里的说明是有点问题的。

    根据淘宝的说明,使用英文进行查询,然后Server.UrlEncode后提交,返回正常。使用中文后,返回签名失败。把中文按utf-8编码传递后,依然失败。

    后来以为是GB2312编码问题,把所有代码包括MD5.ASP改为UTF-8,问题依旧。

    后来查找网上的文章,发现了问题所在。

    原来,拼接字符串并签名时,所有中文必须按gb2312处理,要进行Server.UrlEncode编码,然后拼接后提交的参数值也必须Server.UrlEncode编码。

    以下是我测试的代码:

    '===============================================
    '函 数 名:Format_Time(s_Time)
    '函数用途:API时间格式化函数
    '版权所有:我要溜溜吧
    '===============================================
    Function Format_Time(s_Time)
        Dim y, m, d, h, mi, s
    
        If IsDate(s_Time) = False Then Exit Function
        y = cstr(year(s_Time))
        m = cstr(month(s_Time))
        If len(m) = 1 Then m = "0" & m
        d = cstr(day(s_Time))
        If len(d) = 1 Then d = "0" & d
        h = cstr(hour(s_Time))
        If len(h) = 1 Then h = "0" & h
        mi = cstr(minute(s_Time))
        If len(mi) = 1 Then mi = "0" & mi
        s = cstr(second(s_Time))
        If len(s) = 1 Then s = "0" & s
        Format_Time = y & "-" & m & "-" & d & " " & h & ":" & mi & ":" & s
    End Function
    
    
    '淘吧签名
    Function taobaoSign(url)
        taobaoSign = UCase(md5(AppSecret& Replace(Replace(url,"&",""),"=","") &AppSecret))
    End Function
    
    Dim urlstr,signstr,url,k
    Dim timestr: timestr=Format_Time(now)
    k=Server.UrlEncode("韩版皮鞋")
    
    signstr="app_key="&AppKey&"&fields=title&format=json&method=taobao.tbk.item.get&partner_id=top-apitools&q="&k&"&sign_method=md5&timestamp="&timestr&"&v=2.0"
    urlstr ="app_key="&AppKey&"&fields=title&format=json&method=taobao.tbk.item.get&partner_id=top-apitools&q="&Server.UrlEncode(k)&"&sign_method=md5&timestamp="&timestr&"&v=2.0"
    url = "http://gw.api.taobao.com/router/rest?"&urlstr&"&sign="&taobaoSign(signstr)
    Response.write url


    阅读(2782) 分享(0)

    上一篇: ASP.NET之GridView Eval() 中数据格式化或格式化数据
    下一篇: 认识Asp.net 中相对路径与绝对路径

  • 精彩推荐

    ◆ 滚动悬浮固定JS特效
    ◆ 锚点位置偏移的方法
    ◆ SQL按指定ID的顺序排序显示
    ◆ asp.net在web页面中使用多线程
    ◆ 移动端定宽网页适配方案 手机站网页宽度处理方法
    ◆ 认识Asp.net 中相对路径与绝对路径
    ◆ PHP实现共享内存,非MYSQL,类似asp的application
    ◆ MySQL高效分页解决方案集(转)
    ◆ 延长SSD(固态硬盘)寿命小技巧!
    ◆ mysql的latin1编码支持中文吗?
  • 用心做事 不能唯利是图

    • 吊儿
    • 用QQ联系我17905772
  • 搜索


  • 最新文章

    • 导出Excel 格式 mso-number-format
    • 服务器iis支持tls1.2,windows server 2008 r2 中IIS启用TLS 1.2(安装SSL后用TLS 1.2)
    • MySQL配置优化
    • EditPlus 添加文件比较工具winmerge
    • 滚动悬浮固定JS特效

  • 热门文章

    • php sso单点登录实现代码
    • 中国菜刀(China chopper) 最新黑客工具
    • redis.conf中文版(基于2.4)
    • 搜索引擎名单大全
    • php图片上传类,支持加水印,生成略缩图

  • 最新图库


  • 最新评论


  • 友情链接

  • 沙里软件

  • 最近访客

    Powered by ShaliSoft.com 豫ICP备13008529号

    免责声明:本站部分内容来源于互联网,转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责,也不构成任何其他建议。如果发现侵犯版权,联系QQ17905772进行删除。