V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
sdrzlyz
V2EX  ›  全球工单系统

微信接口回调又坑了?

  •  
  •   sdrzlyz · 2017-06-26 20:04:50 +08:00 · 4221 次点击
    这是一个创建于 2710 天前的主题,其中的信息可能已经有所发展或是发生改变。

    URL 回调莫名其妙的会收到空的 GET 请求:

    tid: 299deac3-7444-4de8-964d-ced6d89b9b0e
    time: 17/06/26 19:45:43
    url: /xxxx/xxxx/cgi
    agent: Mozilla/5.0 (Linux; Android 4.4.4; Coolpad Y82-520 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36 MicroMessenger/6.5.4.1000 NetType/4G Language/zh_CN
    req: 
    resp: {'code':'10008','desc':'invalid, but got body: ','alert':'请求格式错误'}
    

    及时的换过地址,发现请求马上就跟过来了,排除人为访问的可能。

    可是接口文档中明明写着会有对应的 query 参数 [signature, timestamp, nonce] 嘛。。。有没有小伙伴知道什么情况呢?(接口上线大半年了,也是最近 1 个月才出现的这种现象😶)

    	signature := r.URL.Query().Get("signature")
    	timestamp := r.URL.Query().Get("timestamp")
    	nonce := r.URL.Query().Get("nonce")
    
    	if signature == "" || timestamp == "" || nonce == "" {
    		data, err := ioutil.ReadAll(r.Body)
    		defer r.Body.Close()
    		if err != nil {
    			misc.RespondMessage(rw, r, errs.Wrap(errs.ErrInternal, err.Error()))
    			return
    		}
    		misc.RespondMessage(rw, r, errs.Wrap(errs.ErrRequestFormat, "invalid, but got body: %s", string(data)))
    		return
    	}
    
    3 条回复    2017-06-26 23:21:40 +08:00
    mokeyjay
        1
    mokeyjay  
       2017-06-26 20:11:43 +08:00
    大半年前遇到过,做了参数判断,校验失败就丢弃
    sdrzlyz
        2
    sdrzlyz  
    OP
       2017-06-26 22:53:38 +08:00
    @mokeyjay 好吧,感觉也是。微信的文档里面也没说过有这种空的请求
    greatbody
        3
    greatbody  
       2017-06-26 23:21:40 +08:00
    @sdrzlyz 要相信腾讯的程序员也是人,也会犯错。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3980 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 05:11 · PVG 13:11 · LAX 21:11 · JFK 00:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.