请求签名
<p>[TOC]</p>
<h5>1、获取您的私钥以签署请求</h5>
<ul>
<li>准备好您的私钥,用于稍后生成签名。在本主题中,key 用于表示私钥。由商户后台-> 设置-> 添加站点 ->API 密钥对生成 key 和 secret。</li>
</ul>
<h5>2、构造待签名的内容</h5>
<ul>
<li>签名 Content_To_Be_Signed 语法,严格按照如下顺序,并用字符“.” 分隔</li>
<li>签名内容格式:[X-CSP-AppId].[MD5(Request-Body)].[X-CSP-RequestNo].[key]</li>
</ul>
<h5>3、以一个请求为例,它包含以下属性</h5>
<ul>
<li>X-CSP-AppId:登录商户后台设置->添加站点可获取,例如 3578901001</li>
<li>X-CSP-RequestNo:请求流水号,20211109105834</li>
<li>Request-Body:以下代码示例描述了正文格式:
<pre><code>{
&quot;merchantOrderNo&quot;:&quot;2523456716&quot;,
&quot;transferType&quot;:&quot;2&quot;,
&quot;destinationCurrency&quot;:&quot;PHP&quot;,
&quot;destinationAmount&quot;:&quot;100&quot;,
&quot;destinationCountryIsoCode&quot;:&quot;PHL&quot;,
&quot;payerId&quot;:&quot;2853&quot;,
&quot;creditPartyIdentifier&quot;:{
&quot;msisdn&quot; : &quot;+638275017100&quot;
},
&quot;beneficiary&quot;:{
&quot;firstname&quot;:&quot;Chang&quot;,
&quot;lastname&quot;: &quot;James&quot;
}
}</code></pre></li>
<li>Key:登录商户后台设置->站点->API 密钥对,例如 20211201001</li>
</ul>
<h5>4、创建要签名的内容 ( Content_To_Be_Signed) 如下:</h5>
<p><code>X-CSP-AppId:3578901001</code></p>
<p><code>MD5(Request-Body):10b3b595239ed245114df4762b9da3d3</code></p>
<p><code>X-CSP-RequestNo:20211109105834</code></p>
<p><code>key:20211201001</code></p>
<p>签名内容格式:[X-CSP-AppId].[MD5(Request-Body)].[X-CSP-RequestNo].[key]
按签名内容格式拼接得到的签名内容:</p>
<p><code>3578901001.10b3b595239ed245114df4762b9da3d3.20211109105834.20211201001</code></p>
<h5>5、计算并生成签名</h5>
<ul>
<li>
<p>使用正确算法和私钥来计算和生成签名,当前支持 HmacSHA256 算法</p>
<p><code>signature=base64Encode(HmacSHA256(Content_To_Be_Signed, secret))</code></p>
<p>使用的算法:
hmacSHA256:基于 Hmac 算法为提供的内容生成数字签名的方法。 hmacSHA256:基于 Hmac 算法为提供的内容生成数字签名的方法。
base64Encode:对生成的数字签名进行编码的方法。</p>
<p>输入参数:
Content_To_Be_Signed:步骤 2 中获取的待签名内容。
key:在步骤 1 中获得的私钥值。
secret:在步骤 1 中获得的签名秘钥值。</p>
<p>以下代码示例描述了生成的签名(由表示 signature)</p>
<p><code>raHhtpqI7cJcn4eobDJLwKjmjvxtRQeC0c</code></p>
</li>
</ul>
<h5>6、在请求头中配置签名</h5>
<ul>
<li>
<p>将上述签名值配置在请求头的“X-CSP-Signature”中。</p>
<h5>7、发送请求</h5>
</li>
<li>通过将构造一个请求X-CSP-AppId,X-CSP-RequestNo以及X-CSP-Signature字段请求头。 请求构建完成后,您可以使用常用工具,例如 cURL 或 Postman 来发送请求</li>
</ul>