Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
pmdm-doc
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘佳欣
pmdm-doc
Commits
600b63c5
Commit
600b63c5
authored
May 07, 2018
by
刘佳欣
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pmdm对外接口文档
parent
33f654dd
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
268 additions
and
0 deletions
+268
-0
PMDM-API-v0.3.html
+268
-0
No files found.
PMDM-API-v0.3.html
0 → 100644
View file @
600b63c5
<!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"
>
将排序后的参数与其对应值,组合成“参数=参数值”的格式,并且把这些参数用
&
字符连接起来,此时生成的字符串为待签名字符串。
</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"
>
&
</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"
>
}]
&
</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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment