# magento 签名

**URL:** https://forum.magentochina.org/t/magento-%E7%AD%BE%E5%90%8D/263
**Category:** Uncategorized
**Tags:** 后端
**Created:** [2018 年1 月 8 日 10:37 UTC](https://forum.magentochina.org/t/magento-%E7%AD%BE%E5%90%8D/263 "2018-01-08T10:37:34Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### 作者： ![zjw](https://forum.magentochina.org/letter_avatar_proxy/v4/letter/z/dec6dc/32.png) [@zjw](https://forum.magentochina.org/u/zjw)
#### 发布日期： [2018 年1 月 8 日 10:37 UTC](https://forum.magentochina.org/t/magento-%E7%AD%BE%E5%90%8D/263/1 "2018-01-08T10:37:34Z")

</div>

![](https://forum.magentochina.org/uploads/default/original/1X/4efbb3e9af4252dd3322047bd15ec16d952aebaf.png)签名错误，求签名方法以及签名参数(java语言)

---

<div class="post-metadata">

### 作者： ![Shuai](https://forum.magentochina.org/user_avatar/forum.magentochina.org/shuai/32/3_2.png) [@Shuai](https://forum.magentochina.org/u/Shuai)
#### 发布日期： [2018 年1 月 8 日 12:04 UTC](https://forum.magentochina.org/t/magento-%E7%AD%BE%E5%90%8D/263/2 "2018-01-08T12:04:09Z")

</div>

> [@magento1.x 身份认证时报签名错误](https://forum.magentochina.org/t/magento1x-%E8%BA%AB%E4%BB%BD%E8%AE%A4%E8%AF%81%E6%97%B6%E6%8A%A5%E7%AD%BE%E5%90%8D%E9%94%99%E8%AF%AF/262/2):
>
> 这个错误产生的原因是因为客户端生成的signature与Magento生成的signature不匹配，抛出的错误. 请首先确保已经对参数进行了解码，及使用相同的签名加密方法. 搜索了一下，看看这个回答，或许能帮助到你: 另外，代码最好不要使用图片，看不清楚，也不能复制。 本编辑器支持代码高亮， 直接复制代码至编辑器，然后在代码前加入一个回车，并保证每行代码前至少有四个空格。 类似: public function newAction() { $this-\>\_forward('edit'); } public function gridAction() { $this-\>loadLayout(); $this-\>getResponse()-\>setBody($this-\>getLayout()-\>createBlock('banners/adminhtml\_banners\_grid')-\>toHtml()); }

---

<div class="post-metadata">

### 作者： ![zhou](https://forum.magentochina.org/letter_avatar_proxy/v4/letter/z/3e96dc/32.png) [@zhou](https://forum.magentochina.org/u/zhou)
#### 发布日期： [2018 年1 月 26 日 06:37 UTC](https://forum.magentochina.org/t/magento-%E7%AD%BE%E5%90%8D/263/3 "2018-01-26T06:37:26Z")

</div>

错误原因是发送的signature里面有+号，这个符号，在magento后台会被编码成空格，导致验证的时候，无法通过。解决方案：  
重写 **Mage\_Oauth\_Model\_Server** 类的

```
   /**
 * Retrieve protocol parameters from query string
 *
 * @return Mage_Oauth_Model_Server
 */
protected function _fetchProtocolParamsFromQuery()
{
    foreach ($this->_request->getQuery() as $queryParamName => $queryParamValue) {
        if ($this->_isProtocolParameter($queryParamName)) {
            $this->_protocolParams[$queryParamName] = str_replace(' ','+',$queryParamValue);
        }
    }
    return $this;
}
```
