没用过这个,这个 Open API 是怎么调用的,是 HTTP 还是别的,如果是HTTP 话,是 GET 还是 POST?一般来说,打算全球做生意,你的程序应该用 UTF8字符集,如果数据本身有中文时没有注意字符集的问题的话,服务器就认为你可能是在试探性的寻找它的漏洞,因此它提示无效的签名,(就是说,你不要试了,你想调用的方法不存在),因为服务器认为,如果你和我有正常的合作关系,你就应该知道这其中的约定是什么,你不知道那你可能就是入侵者。
解决方案 »
- javaEE开发为什么要用到DTO层
- WebService怎么返回一个XML文件。。。
- ssh整合问题:org.springframework.beans.factory.BeanCreationException: Error creating
- dwr和ssh集成之后报异常:nullpointer
- 在tomcat中使用jacob问题
- 求助“使用jakarta-commons-digester解析一个xml文件”11
- JFREECHART1.0.0版本 柱图问题
- jdom能否解析html文件
- weblogic要求的系统最低配置是什么?
- struts2.1+spring3.1.1+hibernate4.1.4取不到数据,运行creageQuery()跳出未执行了
- struts1+spring+ibatis框架整合出错
- 手机对JSF 2.2支持如何
一般的接口签名的时候会指定编码参数的,比如gbk,utf8一类的。。
你的这个接口很可能需要你在签名前就需要进行字符编码
还有种可能,这个字段可能需要转义
这个是他的签名说明,
2. 签名错误
返回结果为:{"error_code":400,"error_message":"com.alibaba.openapi.gateway.exceptions.RequestValidateException:Invalid signature.","exception":"com.alibaba.openapi.gateway.exceptions.RequestValidateException: Invalid signature."}a. 如果请求参数中带中文或者日期(如:20120228212041422+0800),所有参数需在UrlEncode之前计算签名,也就是用原始的参数计算签名;签名完成后,在请求前应对参数用utf-8进行UrlEncode,再访问阿里巴巴开放平台。可以使用签名测试工具测试签名的正确性b. 如果根据当前url和请求参数计算的签名和签名测试工具一致,那么只可能是传到后端服务的参数与代码中的参数不一致,可能原因是使用 get请求的参数内容太长(换成post请求试试),也可能是特殊字符的编码格式不对(设置Content-type为"application/x-www-form-urlencoded; charset=UTF-8"试试)c. 如果请求中涉及文件上传,文件字节流参数不参与签名计算;另外,需指定请求的form enctype属性为multipart/form-data
按照他的做法也不行,奇怪了。。