Commit 600b63c5 by 刘佳欣

pmdm对外接口文档

parent 33f654dd
<!DOCTYPE html>
<html class="theme theme-white">
<head>
<meta charset="utf-8">
<title>Payment Master Data Management API</title>
<link href="https://www.zybuluo.com/static/assets/template-theme-white.css" rel="stylesheet" media="screen">
<style type="text/css">
#wmd-preview h1 {
color: #0077bb; /* 将标题改为蓝色 */
}</style>
</head>
<body class="theme theme-white">
<div id="wmd-preview" class="wmd-preview wmd-preview-full-reader"><div class="md-section-divider"></div><div class="md-section-divider"></div><h1 data-anchor-id="07x6" id="payment-master-data-management-api">Payment Master Data Management API</h1><table data-anchor-id="7ql6" class="table table-striped-white table-bordered">
<thead>
<tr>
<th style="text-align:center;">版本</th>
<th style="text-align:center;">修订内容</th>
<th style="text-align:center;">修订原因</th>
<th style="text-align:center;">编写时间</th>
<th style="text-align:center;">作者</th>
</tr>
</thead>
<tbody><tr>
<td style="text-align:center;">v0.1</td>
<td style="text-align:center;">创建</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">2017-11-29</td>
<td style="text-align:center;">宦传建</td>
</tr>
<tr>
<td style="text-align:center;">v0.2</td>
<td style="text-align:center;">新增字段 from 区分 GC 和 EC 门店</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">2018-02-28</td>
<td style="text-align:center;">宦传建</td>
</tr>
<tr>
<td style="text-align:center;">v0.3</td>
<td style="text-align:center;">使用 opType 区分是新增还是变更门店</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">2018-04-</td>
<td style="text-align:center;">宦传建</td>
</tr>
</tbody></table><blockquote data-anchor-id="cqef" class="white-blockquote">
<p>以下简称 PMDM </p>
</blockquote><p data-anchor-id="uq9k"><div class="toc">
<ul>
<li><a href="#payment-master-data-management-api">Payment Master Data Management API</a><ul>
<li><ul>
<li><a href="#接口说明">接口说明</a></li>
<li><a href="#请求参数">请求参数</a></li>
<li><a href="#响应参数">响应参数</a></li>
<li><a href="#请求示例">请求示例</a></li>
<li><a href="#响应示例">响应示例</a></li>
<li><a href="#签名规则">签名规则</a><ul>
<li><a href="#1-筛选并排序">1. 筛选并排序</a></li>
<li><a href="#2-拼接">2. 拼接</a></li>
</ul>
</li>
<li><a href="#返回码表">返回码表</a></li>
<li><a href="#门店所属公司">门店所属公司</a></li>
<li><a href="#操作类型">操作类型</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</p><div class="md-section-divider"></div><h3 data-anchor-id="u4h7" id="接口说明">接口说明</h3><ul data-anchor-id="fvyy">
<li><p>接入方通过实现该 API 来获取门店数据,PMDM 通过接入方提供的回调地址来发送数据,回调方式为 <code>HTTP POST</code>,请求响应数据格式目前支持 <code>JSON</code> 格式,编码均为 <code>UTF-8</code></p></li>
<li><p>接口采用 <code>SHA256WithRSA</code> 算法对请求和响应数据进行双向签名,详细见<a href="#签名规则">签名规则</a>,联调时由 PMDM 提供验签和加签的密钥。</p></li>
<li><p>PMDM 回调接入方失败时,会按照一定频率进行重试。</p></li>
</ul><div class="md-section-divider"></div><h3 data-anchor-id="6v3g" id="请求参数">请求参数</h3><table data-anchor-id="giel" class="table table-striped-white table-bordered">
<thead>
<tr>
<th style="text-align:left;">字段</th>
<th style="text-align:center;">类型</th>
<th style="text-align:center;">是否必填</th>
<th style="text-align:center;">备注</th>
</tr>
</thead>
<tbody><tr>
<td style="text-align:left;">ver</td>
<td style="text-align:center;">Integer</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">API 版本</td>
</tr>
<tr>
<td style="text-align:left;">sign</td>
<td style="text-align:center;">String</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">签名</td>
</tr>
<tr>
<td style="text-align:left;">stores</td>
<td style="text-align:center;">Array</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">门店信息列表</td>
</tr>
<tr>
<td style="text-align:left;">└ province</td>
<td style="text-align:center;">String</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">省份</td>
</tr>
<tr>
<td style="text-align:left;">└ city</td>
<td style="text-align:center;">String</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">城市</td>
</tr>
<tr>
<td style="text-align:left;">└ company</td>
<td style="text-align:center;">String</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">公司名称</td>
</tr>
<tr>
<td style="text-align:left;">└ id</td>
<td style="text-align:center;">String</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">门店号</td>
</tr>
<tr>
<td style="text-align:left;">└ name</td>
<td style="text-align:center;">String</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">门店名称</td>
</tr>
<tr>
<td style="text-align:left;">└ addr</td>
<td style="text-align:center;">String</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">门店地址</td>
</tr>
<tr>
<td style="text-align:left;">└ manager</td>
<td style="text-align:center;">String</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">门店经理</td>
</tr>
<tr>
<td style="text-align:left;">└ managerPhone</td>
<td style="text-align:center;">String</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">经理电话</td>
</tr>
<tr>
<td style="text-align:left;">└ email</td>
<td style="text-align:center;">String</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">门店邮箱</td>
</tr>
<tr>
<td style="text-align:left;">└ phone</td>
<td style="text-align:center;">String</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">门店电话</td>
</tr>
<tr>
<td style="text-align:left;">└ posNum</td>
<td style="text-align:center;">Integer</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">门店pos数量</td>
</tr>
<tr>
<td style="text-align:left;">└ opType</td>
<td style="text-align:center;">String</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">操作类型,详细见附录</td>
</tr>
<tr>
<td style="text-align:left;">from</td>
<td style="text-align:center;">Integer</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">区分 GC 和 EC,详细见附录</td>
</tr>
</tbody></table><div class="md-section-divider"></div><h3 data-anchor-id="l7ce" id="响应参数">响应参数</h3><table data-anchor-id="7nug" class="table table-striped-white table-bordered">
<thead>
<tr>
<th style="text-align:center;">字段</th>
<th style="text-align:center;">类型</th>
<th style="text-align:center;">是否必填</th>
<th style="text-align:center;">备注</th>
</tr>
</thead>
<tbody><tr>
<td style="text-align:center;">ver</td>
<td style="text-align:center;">Integer</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">默认使用请求的 ver</td>
</tr>
<tr>
<td style="text-align:center;">sign</td>
<td style="text-align:center;">String</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">签名</td>
</tr>
<tr>
<td style="text-align:center;">code</td>
<td style="text-align:center;">Integer</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">返回码</td>
</tr>
<tr>
<td style="text-align:center;">msg</td>
<td style="text-align:center;">String</td>
<td style="text-align:center;"></td>
<td style="text-align:center;">返回码描述</td>
</tr>
</tbody></table><div class="md-section-divider"></div><h3 data-anchor-id="opog" id="请求示例">请求示例</h3><div class="md-section-divider"></div><pre class="prettyprint linenums prettyprinted" data-anchor-id="ms42" style=""><ol class="linenums"><li class="L0"><code class="language-json"><span class="pun">{</span></code></li><li class="L1"><code class="language-json"><span class="pln"> </span><span class="str">"ver"</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span></code></li><li class="L2"><code class="language-json"><span class="pln"> </span><span class="str">"stores"</span><span class="pun">:</span><span class="pln"> </span><span class="pun">[</span></code></li><li class="L3"><code class="language-json"><span class="pln"> </span><span class="pun">{</span></code></li><li class="L4"><code class="language-json"><span class="pln"> </span><span class="str">"province"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"广东省"</span><span class="pun">,</span></code></li><li class="L5"><code class="language-json"><span class="pln"> </span><span class="str">"city"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"深圳市"</span><span class="pun">,</span></code></li><li class="L6"><code class="language-json"><span class="pln"> </span><span class="str">"company"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"西安星巴克咖啡有限公司"</span><span class="pun">,</span></code></li><li class="L7"><code class="language-json"><span class="pln"> </span><span class="str">"id"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"50928"</span><span class="pun">,</span></code></li><li class="L8"><code class="language-json"><span class="pln"> </span><span class="str">"name"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"咸阳丽彩万达店"</span><span class="pun">,</span></code></li><li class="L9"><code class="language-json"><span class="pln"> </span><span class="str">"addr"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"咸阳市秦都区玉泉东路与泉北三巷交叉口西北角咸阳丽彩万达广场1楼"</span><span class="pun">,</span></code></li><li class="L0"><code class="language-json"><span class="pln"> </span><span class="str">"manager"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"Higer 司咸林"</span><span class="pun">,</span></code></li><li class="L1"><code class="language-json"><span class="pln"> </span><span class="str">"managerPhone"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"13279566588"</span><span class="pun">,</span></code></li><li class="L2"><code class="language-json"><span class="pln"> </span><span class="str">"email"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"S50928@starbucks.cn"</span><span class="pun">,</span></code></li><li class="L3"><code class="language-json"><span class="pln"> </span><span class="str">"phone"</span><span class="pun">:</span><span class="pln"> </span><span class="str">""</span><span class="pun">,</span></code></li><li class="L4"><code class="language-json"><span class="pln"> </span><span class="str">"posNum"</span><span class="pun">:</span><span class="pln"> </span><span class="lit">2</span><span class="pun">,</span></code></li><li class="L5"><code class="language-json"><span class="pln"> </span><span class="str">"opType"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"create"</span></code></li><li class="L6"><code class="language-json"><span class="pln"> </span><span class="pun">},</span></code></li><li class="L7"><code class="language-json"><span class="pln"> </span><span class="pun">{</span></code></li><li class="L8"><code class="language-json"><span class="pln"> </span><span class="pun">//</span><span class="pln"> </span><span class="pun">...</span></code></li><li class="L9"><code class="language-json"><span class="pln"> </span><span class="pun">}</span></code></li><li class="L0"><code class="language-json"><span class="pln"> </span><span class="pun">],</span></code></li><li class="L1"><code class="language-json"><span class="pln"> </span><span class="str">"sign"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"Kwk9I9SyRlYnHYYbo+hsKVjsCZ+38kWdsnAhw9AqjVS1b6ZiNBl05UlQVAf9hRSsbCuidY4OGmMvzYpBX9bX0evU/PwNwT+VhHDVjWKPOWKJRbGslMz7fWuFLTnmsaiPikvY8sGuTygoHhLQV3GsT7rJdHI+CPCp90bMlLGUdcOIpWHcmqvugxpen24v986GRoRKUg7D7ku8i401F0Nj06hEgytC/JtQWsi7x5zdAO/Mf3aPoNqD06PzGBjhrAnlE43jgMFJvArQ38qCTist+orniBFjQxLtdk99vqaZXx8tdRwD/ZJfQ2MhJAvqcmU0brelAK1Q1rGf5QmEcAy5bQ=="</span><span class="pun">,</span></code></li><li class="L2"><code class="language-json"><span class="pln"> </span><span class="str">"from"</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span></code></li><li class="L3"><code class="language-json"><span class="pun">}</span></code></li></ol></pre><div class="md-section-divider"></div><h3 data-anchor-id="qvfl" id="响应示例">响应示例</h3><div class="md-section-divider"></div><pre class="prettyprint linenums prettyprinted" data-anchor-id="7iu4" style=""><ol class="linenums"><li class="L0"><code class="language-json"><span class="pun">{</span></code></li><li class="L1"><code class="language-json"><span class="pln"> </span><span class="str">"ver"</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span></code></li><li class="L2"><code class="language-json"><span class="pln"> </span><span class="str">"sign"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"Ga8vZwBFV9Qyegz4OuTkMyT1r9n3Vk/HHn1noLfZM2jVy2Y6xjhBUl2OsfbPu7EQm4pRbrUuVrw2hCv4IVzz7/iA+pJOYhXz8tGvkYedl5vZdI2+Mb3l6dav4g9tDR9FdXJ6SvT7Yi5SaBGqtIwof1UmuMrGDsToQZe6ADRMq2z34A6WpEJknvwP5cxK1TCFvvX46G7ZyiAq6UcBhMHs3r1NSH0eYxEygvg4qYUy4KNGhavO5+M0La+6bKpUarU6izF2DXV2f14mawcHLg6YDjXk6LnNJ7UKH6sUnwOc1AoAHG6B8FslDqW7e5JTvQzbUpuUXKc1WUKruSgFPCInOw=="</span><span class="pun">,</span></code></li><li class="L3"><code class="language-json"><span class="pln"> </span><span class="str">"code"</span><span class="pun">:</span><span class="pln"> </span><span class="lit">100</span><span class="pun">,</span></code></li><li class="L4"><code class="language-json"><span class="pln"> </span><span class="str">"msg"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"成功"</span></code></li><li class="L5"><code class="language-json"><span class="pun">}</span></code></li></ol></pre><div class="md-section-divider"></div><h3 data-anchor-id="ifdh" id="签名规则">签名规则</h3><div class="md-section-divider"></div><h4 data-anchor-id="m9bm" id="1-筛选并排序">1. 筛选并排序</h4><p data-anchor-id="8mn0">获取所有请求参数,不包括字节类型参数,如文件、字节流,剔除 sign 字段,剔除值为空的参数,并按照第一个字符的键值 ASCII 码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值 ASCII 码递增排序,以此类推。</p><div class="md-section-divider"></div><h4 data-anchor-id="n7fl" id="2-拼接">2. 拼接</h4><p data-anchor-id="l636">将排序后的参数与其对应值,组合成“参数=参数值”的格式,并且把这些参数用&amp;字符连接起来,此时生成的字符串为待签名字符串。</p><ul data-anchor-id="lmlp">
<li>例如下面的请求示例,参数值都是示例,开发者参考格式即可:</li>
</ul><div class="md-section-divider"></div><pre class="prettyprint linenums prettyprinted" data-anchor-id="mbyz" style=""><ol class="linenums"><li class="L0"><code class="language-json"><span class="pun">{</span></code></li><li class="L1"><code class="language-json"><span class="pln"> </span><span class="str">"ver"</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span></code></li><li class="L2"><code class="language-json"><span class="pln"> </span><span class="str">"sign"</span><span class="pun">:</span><span class="pln"> </span><span class="str">""</span><span class="pun">,</span></code></li><li class="L3"><code class="language-json"><span class="pln"> </span><span class="str">"stores"</span><span class="pun">:</span><span class="pln"> </span><span class="pun">[</span></code></li><li class="L4"><code class="language-json"><span class="pln"> </span><span class="pun">{</span></code></li><li class="L5"><code class="language-json"><span class="pln"> </span><span class="str">"province"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"广东省"</span><span class="pun">,</span></code></li><li class="L6"><code class="language-json"><span class="pln"> </span><span class="str">"city"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"深圳市"</span><span class="pun">,</span></code></li><li class="L7"><code class="language-json"><span class="pln"> </span><span class="str">"company"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"西安星巴克咖啡有限公司"</span><span class="pun">,</span></code></li><li class="L8"><code class="language-json"><span class="pln"> </span><span class="str">"id"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"50928"</span><span class="pun">,</span></code></li><li class="L9"><code class="language-json"><span class="pln"> </span><span class="str">"name"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"咸阳丽彩万达店"</span><span class="pun">,</span></code></li><li class="L0"><code class="language-json"><span class="pln"> </span><span class="str">"addr"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"咸阳市秦都区玉泉东路与泉北三巷交叉口西北角咸阳丽彩万达广场1楼"</span><span class="pun">,</span></code></li><li class="L1"><code class="language-json"><span class="pln"> </span><span class="str">"manager"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"Higer 司咸林"</span><span class="pun">,</span></code></li><li class="L2"><code class="language-json"><span class="pln"> </span><span class="str">"managerPhone"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"13279566588"</span><span class="pun">,</span></code></li><li class="L3"><code class="language-json"><span class="pln"> </span><span class="str">"email"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"S50928@starbucks.cn"</span><span class="pun">,</span></code></li><li class="L4"><code class="language-json"><span class="pln"> </span><span class="str">"phone"</span><span class="pun">:</span><span class="pln"> </span><span class="str">""</span><span class="pun">,</span></code></li><li class="L5"><code class="language-json"><span class="pln"> </span><span class="str">"posNum"</span><span class="pun">:</span><span class="pln"> </span><span class="lit">2</span><span class="pun">,</span></code></li><li class="L6"><code class="language-json"><span class="pln"> </span><span class="str">"opType"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"create"</span></code></li><li class="L7"><code class="language-json"><span class="pln"> </span><span class="pun">},</span></code></li><li class="L8"><code class="language-json"><span class="pln"> </span><span class="pun">{</span></code></li><li class="L9"><code class="language-json"><span class="pln"> </span><span class="pun">//</span><span class="pln"> </span><span class="pun">...</span></code></li><li class="L0"><code class="language-json"><span class="pln"> </span><span class="pun">}</span></code></li><li class="L1"><code class="language-json"><span class="pln"> </span><span class="pun">],</span></code></li><li class="L2"><code class="language-json"><span class="pln"> </span><span class="str">"from"</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span></code></li><li class="L3"><code class="language-json"><span class="pun">}</span></code></li></ol></pre><ul data-anchor-id="i2h0">
<li>则待签名字符串为:</li>
</ul><div class="md-section-divider"></div><pre class="prettyprint linenums prettyprinted" data-anchor-id="04xp" style=""><ol class="linenums"><li class="L0"><code class="language-json"><span class="pln">from</span><span class="pun">=</span><span class="lit">1</span><span class="pun">&amp;</span><span class="pln">stores</span><span class="pun">=[{</span><span class="str">"addr"</span><span class="pun">:</span><span class="str">"咸阳市秦都区玉泉东路与泉北三巷交叉口西北角咸阳丽彩万达广场1楼"</span><span class="pun">,</span><span class="str">"city"</span><span class="pun">:</span><span class="str">"深圳市"</span><span class="pun">,</span><span class="str">"company"</span><span class="pun">:</span><span class="str">"西安星巴克咖啡有限公司"</span><span class="pun">,</span><span class="str">"email"</span><span class="pun">:</span><span class="str">"S50928@starbucks.cn"</span><span class="pun">,</span><span class="str">"id"</span><span class="pun">:</span><span class="str">"50928"</span><span class="pun">,</span><span class="str">"manager"</span><span class="pun">:</span><span class="str">"Higer 司咸林"</span><span class="pun">,</span><span class="str">"managerPhone"</span><span class="pun">:</span><span class="str">"13279566588"</span><span class="pun">,</span><span class="str">"name"</span><span class="pun">:</span><span class="str">"咸阳丽彩万达店"</span><span class="pun">,</span><span class="str">"opType"</span><span class="pun">:</span><span class="str">"create"</span><span class="pun">,</span><span class="str">"phone"</span><span class="pun">:</span><span class="str">""</span><span class="pun">,</span><span class="str">"posNum"</span><span class="pun">:</span><span class="lit">2</span><span class="pun">,</span><span class="str">"province"</span><span class="pun">:</span><span class="str">"广东省"</span><span class="pun">}]&amp;</span><span class="pln">ver</span><span class="pun">=</span><span class="lit">1</span></code></li></ol></pre><ul data-anchor-id="k36u">
<li>调用签名函数</li>
</ul><p data-anchor-id="jlnb">加签的测试密钥</p><div class="md-section-divider"></div><pre class="prettyprint linenums prettyprinted" data-anchor-id="06v5" style=""><ol class="linenums"><li class="L0"><code><span class="typ">MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCiecgdLLeMTlhbjj7ccUj</span><span class="pun">+</span><span class="pln">xtU7u66zYNPcnWsPl9hO0sjVQqDQEBFLcsgkOalsodc</span><span class="pun">/</span><span class="lit">3D1EA</span><span class="pun">+</span><span class="lit">4PDEq</span><span class="pun">/</span><span class="pln">mswK4v9D</span><span class="pun">+</span><span class="typ">Xn</span><span class="pun">/</span><span class="pln">X7c2oYjM8pOVo03qtMEgLzsZKGI</span><span class="pun">/</span><span class="typ">NmxjXD8Ceqe2jEPf</span><span class="pun">/</span><span class="pln">IJ6g2LvQt1qm7BLnoK3i</span><span class="pun">+</span><span class="pln">B2xQvfxo1E1Jetnhe8gh65Dac4G67IcB5WY3zr8qIHVMyUuf</span><span class="pun">/</span><span class="pln">pEIpi6IUVNVVK</span><span class="pun">/</span><span class="lit">3IPN</span><span class="pun">+</span><span class="typ">NJRFGa9z5mUdbZrp</span><span class="pun">/</span><span class="lit">3ogWbBNfwI</span><span class="pun">/</span><span class="lit">5C1Ahw30lmrjgtH2LHHv8Z1DNtUc6oVn00OKMWUTdvHRFrcTcOvnz</span><span class="pun">+</span><span class="str">/nTt/</span><span class="pln">dmASsxVRlnnVUqQT1RaoK6w</span><span class="pun">/</span><span class="pln">I6h11jlAgMBAAECggEARE2L</span><span class="pun">+</span><span class="pln">e</span><span class="pun">/</span><span class="typ">Vjc9Vx8</span><span class="pun">+</span><span class="typ">Jz6R0Ol8eP0lMTS6UgjdPTbPZBHIKadTjw</span><span class="pun">/</span><span class="typ">QtQRmU193BwuBanAcbXl</span><span class="pun">+</span><span class="typ">EkaDqP5h01NLO2yWiyt</span><span class="pun">/</span><span class="typ">TJs1LtFT6BDstw1CPq9cPMilO</span><span class="pun">/</span><span class="pln">CIF</span><span class="pun">+</span><span class="typ">NNLzeAAZ3aaBiyiMZzQV6M1b97Zg0C01TKhf2yg7EcNFnWE</span><span class="pun">+</span><span class="pln">kBDXT4yoNHG09Ga</span><span class="pun">/</span><span class="typ">WVvdnYFSeGlHf</span><span class="pun">/</span><span class="lit">52kJhXmj4dUiEj4N1ljC9EhoqyUGI8oV6J</span><span class="pun">+</span><span class="pln">txKxnjZazLLw1rpDVXTSJ2ggHB4SNAcAWtbTHXTyt7PI7JNPryf4EQ9zGjWZYSF0e47gqBDBbBiikwyqin41Zwa5uqwFQ4</span><span class="pun">+</span><span class="com">//qizm0c8iToQKBgQDPJxSzzYJYCuVmJyhcpXqPUGq7qpFlrizkMkSkZZKpJuf7+YmFExM+513HhcrMoMXsS65JzrtozRZs2hl5/1+DQOdToAfbiFk5TwLRjfZOQ7xoRyAbAQlCdrkAzRkogqisGprtpUOIuckoBdw9vu0WrsozjUiMa8IIVG5Uwpy4qQKBgQDIyb6hM/YOtEPjhngmYOvK2PziZeV1PrqRRs7O11m52RkSbLErDlf7DY4sAuui/wn8wv4ErJoTqHOetLDAp/oHbU+ceQ/Fzm2r5BHXNzEn3kqcp9kDubUVOhNOkQ3AvMKhl0DiXiVH3m9osk8W9GXYk+jLgZdU3rPru7YQMYbX3QKBgEkhIs3W3wz1y8YkTLtoL7woR4W40Vt0AaUNme3vbbcJZRwvG70+3qx2QUUOlmlm2HhyvzSPJtn4jNIgrJ3E6ZMMdp2vARcfK2Bv5C7WTv2SLBEkCtF9rCcqgmUmApuqhKE9QzRiA1VhQQJAD2A85rX7Pqa0Wcg4wmbuZ4TEr08BAoGACJjKtrA42sxRE87QGiSQM/EycqcWOfzjlBDKDgUebFylPCq3Mza8AZ3E9pFxcVsmHFJk+eJB/pF50dO+taD7jZHalMKCMF/0RiXPtb1BN4nG/AobupMa87u20+hWBGiQlMabGpYZVohpkLwBsuPn8Gv0zbHQvuuCHJe+5daZBWkCgYEAh5AGqKBgybB95yuIi9egNSxKt6QQfYtio/zBTC3AbiHvk1NZHpppxlpsbbRqka4/WLv0NF0CVMqCkBLCWPjd/V2njbj2dL1ywhajFekILPJa0UYW4GH3UVBIYcXTNeOZ0EXAh64NvQBeJ7GK+97Wx6PCMXjmQhe1cxu+/B9DEzs=</span></code></li></ol></pre><p data-anchor-id="zkm3">使用各自语言对应的 SHA256WithRSA 签名函数利用商户私钥对待签名字符串进行签名,并进行 Base64 编码,得到签名为:</p><div class="md-section-divider"></div><pre class="prettyprint linenums prettyprinted" data-anchor-id="2xd1" style=""><ol class="linenums"><li class="L0"><code><span class="pln">MPW2rlQkyeOzTVLMVxPjLtRncVuEZ10vEWvRWNLs68</span><span class="pun">+</span><span class="lit">7YKIY9pDJkEVZ6GAJrtxBbu2oXkvUey37yz</span><span class="pun">/</span><span class="pln">cPLiwv9hhxLHZy2G5IX1ElyhiS</span><span class="pun">+</span><span class="pln">HG0CGkfnQ1E72tO4cQ3</span><span class="pun">+</span><span class="pln">uqnBdbp</span><span class="pun">/</span><span class="lit">3</span><span class="pun">/</span><span class="pln">fiohPvzZ8eatj4HKFq</span><span class="pun">/</span><span class="typ">Zc6IOmPvPcki4mFh6zEbORSyG</span><span class="pun">+</span><span class="pln">PEJMU3Fiw2uYIuWE2aJaxkiophZvxZGs</span><span class="pun">+</span><span class="pln">eVmKS4</span><span class="pun">/</span><span class="typ">GtNQgdse4wnuueleYRetBB50J55JbzglEVNcgzczIQDSH50Cc2BqIYglFsFWg9no9HEtLlsPTaog</span><span class="pun">+</span><span class="typ">ToKk6EmqxoWZ</span><span class="pun">+</span><span class="pln">bBcF4boSfSKDnLh5c2slaINzhN96XhA</span><span class="pun">==</span></code></li></ol></pre><ul data-anchor-id="g9wl">
<li>把生成的签名赋值给 sign 参数,拼接到请求参数中。</li>
</ul><div class="md-section-divider"></div><h3 data-anchor-id="pwgu" id="返回码表">返回码表</h3><table data-anchor-id="nmcd" class="table table-striped-white table-bordered">
<thead>
<tr>
<th style="text-align:center;">返回码</th>
<th style="text-align:center;">返回描述</th>
</tr>
</thead>
<tbody><tr>
<td style="text-align:center;">100</td>
<td style="text-align:center;">成功</td>
</tr>
<tr>
<td style="text-align:center;">101</td>
<td style="text-align:center;">接入方自定义失败描述,方便排查问题</td>
</tr>
</tbody></table><div class="md-section-divider"></div><h3 data-anchor-id="vsth" id="门店所属公司">门店所属公司</h3><table data-anchor-id="7pb4" class="table table-striped-white table-bordered">
<thead>
<tr>
<th style="text-align:center;">from字段</th>
<th style="text-align:center;">描述</th>
</tr>
</thead>
<tbody><tr>
<td style="text-align:center;">1</td>
<td style="text-align:center;">星巴克中国(GC)</td>
</tr>
<tr>
<td style="text-align:center;">2</td>
<td style="text-align:center;">统一星巴克(EC)</td>
</tr>
</tbody></table><div class="md-section-divider"></div><h3 data-anchor-id="1geh" id="操作类型">操作类型</h3><table data-anchor-id="es9d" class="table table-striped-white table-bordered">
<thead>
<tr>
<th style="text-align:center;">opType字段</th>
<th style="text-align:center;">描述</th>
</tr>
</thead>
<tbody><tr>
<td style="text-align:center;">create</td>
<td style="text-align:center;">新增</td>
</tr>
<tr>
<td style="text-align:center;">update</td>
<td style="text-align:center;">更新</td>
</tr>
</tbody></table></div>
</body>
</html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment