GET常规请求无法获取

#1 anythink

我设置了 rewrite

我连接淘宝 api
https://*/think_dav/taobao-sign.do?top_appkey=12291345&top_parameters=aWZyYW1lPTEmdHM9MTMwODgyNTM0NTkyNSZ2aXNpdG9yX2lkPTI1MjczMTE1JnZpc2l0b3Jfbmljaz1ueGZ0ZQ%3D%3D&top_session=4062306b735a2mTJ4PXFud2a40f3a03046b4630a5a5ca1f252731151&encode=utf-8&top_sign=HpZshtFvbZIx37KZKjorGQ%3D%3D

这个地址是返回的参数, 我无法用 GET 和 $this->spArgs('top_appkey');  获取到正确的数据,sign比对一直失败,请问是不是spArgs 修改了什么东西????

签名一直无法通过验证

2011-06-23 18:42:01

#2 jake

spArgs只是很简单代码,不修改什么,代码很简单,你可以直接看看。

上面是你链接到淘宝的URL,你可以找找看淘宝回调的地址是怎么样的(在服务器的access.log里面应该记录了),看看参数传递有没有问题。

2011-06-23 18:52:08

#3 anythink

https://*/think_dav/taobao-sign.do?top_appkey=12291345&top_parameters=aWZyYW1lPTEmdHM9MTMwODgyNjYzNDcwNCZ2aXNpdG9yX2lkPTI1MjczMTE1JnZpc2l0b3Jfbmljaz1ueGZ0ZQ%3D%3D&top_session=4062324b735a2d2a40f3a03046b46303tEoIM9ia5a5ca1f252731151&sign=Y3lB2Ixil43kzo8i%2B1T%2Bbw%3D%3D×tamp=2011-06-23+18%3A57%3A14&encode=utf-8&top_sign=7zVFXeBZxSgTovsV2p2zKA%3D%3D


"GET /think_dav/taobao-sign.do?top_appkey=12291345&top_parameters=aWZyYW1lPTEmdHM9MTMwODgyNjYzNDcwNCZ2aXNpdG9yX2lkPTI1MjczMTE1JnZpc2l0b3Jfbmljaz1ueGZ0ZQ%3D%3D&top_session=4062324b735a2d2a40f3a03046b46303tEoIM9ia5a5ca1f252731151&sign=Y3lB2Ixil43kzo8i%2B1T%2Bbw%3D%3D×tamp=2011-06-23+18%3A57%3A14&encode=utf-8&top_sign=7zVFXeBZxSgTovsV2p2zKA%3D%3D

2011-06-23 18:58:06

#4 anythink

难道是 url encode 的问题?

2011-06-23 19:04:00

#5 jake

淘宝API回调你的是上面这地址?taobao-sign.do这个是伪静态的实现对吧。

你可以在那个页面上

file_put_contents('a.txt', dump($_GET, true));

把回调时候的GET参数写到a.txt里面看看(因为无法直接显示)

另外,spArgs之前有个大小写的问题,SVN很久前就修复了,你可以更新一下spUrlRewrite这个文件。
http://code.google.com/p/speedphp/source/browse/trunk/Extensions/spUrlRewrite.php

2011-06-23 19:06:55

#6 anythink

Array
(
    [taobao-sign_do] =>
)

直接是这样

2011-06-23 19:15:42

#7 anythink

补丁我打了 我再重新试一下

2011-06-23 19:15:53

#8 anythink

好了........

2011-06-23 19:31:46

#9 jake

回复 8 anythink

:handshake

2011-06-23 20:16:45

#10 anythink

至今没明白是什么情况.. 跟 rewrite 有关系....?

2011-06-23 23:09:10

#11 jake

原本的urlrewrite设计是不区分大小写的,但是这样会导致大写的参数变成小写,当然可以在接收的时候转一下就好,但是有网友提出,所以现在改成区分大小写的,这样可以直接接收到大小写混合的参数。
目前这个bug已经修正,谢谢楼上和提出的网友。

2011-06-24 09:19:51

#12 anythink

原来如此!!!!!

2011-06-24 16:30:01