接口返回签名错误(PHP)
<h2>错误1</h2>
<p>PHP端发送请求时,参数值中含有特殊字符,没有使用 <code>utf8_encode</code> 函数编码。</p>
<p>特别是参数<code>notifyUrl</code>、<code>returnUrl</code>、<code>customerName</code>的参数值上面加上面<code>utf8_encode</code>函数后签名验签就正常了。</p>
<p>例如:
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=37e68892f0a538c9462a709d0ed4e4be" alt="" /></p>
<h2>错误2</h2>
<p>PHP端使用了自己封装post请求函数,其中有一些改动,不是正规格式了。</p>
<h2>签名示例</h2>
<p>例如参数如下:</p>
<pre><code class="language-json">{
&quot;version&quot; : &quot;1.0&quot;,
&quot;mchOrderNo&quot; : &quot;P0123456789101&quot;,
&quot;amount&quot; : &quot;1000000&quot;
}</code></pre>
<p>排序后待签名字符串:</p>
<pre><code class="language-markdown">String signStr = &quot;amount=10000&amp;mchOrderNo=P0123456789101&amp;version=1.0&amp;key=EWEFD123RGSRETYDFNGFGFGSHDFGH&quot;;</code></pre>
<p>进行签名:</p>
<pre><code class="language-markdown">String sign = MD5(signStr);</code></pre>
<p>转成大写:
<code>将签名转为全大写</code></p>