| 版本 | 修订内容 | 修订原因 | 编写时间 | 作者 |
|---|---|---|---|---|
| v0.1 | 创建 | 2017-11-29 | 宦传建 | |
| v0.2 | 新增字段 from 区分 GC 和 EC 门店 | 2018-02-28 | 宦传建 | |
| v0.3 | 使用 opType 区分是新增还是变更门店 | 2018-04- | 宦传建 |
以下简称 PMDM
接入方通过实现该 API 来获取门店数据,PMDM 通过接入方提供的回调地址来发送数据,回调方式为 HTTP POST,请求响应数据格式目前支持 JSON 格式,编码均为 UTF-8 。
接口采用 SHA256WithRSA 算法对请求和响应数据进行双向签名,详细见签名规则,联调时由 PMDM 提供验签和加签的密钥。
PMDM 回调接入方失败时,会按照一定频率进行重试。
| 字段 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| ver | Integer | 是 | API 版本 |
| sign | String | 是 | 签名 |
| stores | Array | 是 | 门店信息列表 |
| └ province | String | 是 | 省份 |
| └ city | String | 是 | 城市 |
| └ company | String | 是 | 公司名称 |
| └ id | String | 是 | 门店号 |
| └ name | String | 是 | 门店名称 |
| └ addr | String | 是 | 门店地址 |
| └ manager | String | 是 | 门店经理 |
| └ managerPhone | String | 是 | 经理电话 |
| String | 是 | 门店邮箱 | |
| └ phone | String | 是 | 门店电话 |
| └ posNum | Integer | 是 | 门店pos数量 |
| └ opType | String | 是 | 操作类型,详细见附录 |
| from | Integer | 是 | 区分 GC 和 EC,详细见附录 |
| 字段 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| ver | Integer | 是 | 默认使用请求的 ver |
| sign | String | 是 | 签名 |
| code | Integer | 是 | 返回码 |
| msg | String | 是 | 返回码描述 |
{"ver": 1,"stores": [{"province": "广东省","city": "深圳市","company": "西安星巴克咖啡有限公司","id": "50928","name": "咸阳丽彩万达店","addr": "咸阳市秦都区玉泉东路与泉北三巷交叉口西北角咸阳丽彩万达广场1楼","manager": "Higer 司咸林","managerPhone": "13279566588","email": "S50928@starbucks.cn","phone": "","posNum": 2,"opType": "create"},{// ...}],"sign": "Kwk9I9SyRlYnHYYbo+hsKVjsCZ+38kWdsnAhw9AqjVS1b6ZiNBl05UlQVAf9hRSsbCuidY4OGmMvzYpBX9bX0evU/PwNwT+VhHDVjWKPOWKJRbGslMz7fWuFLTnmsaiPikvY8sGuTygoHhLQV3GsT7rJdHI+CPCp90bMlLGUdcOIpWHcmqvugxpen24v986GRoRKUg7D7ku8i401F0Nj06hEgytC/JtQWsi7x5zdAO/Mf3aPoNqD06PzGBjhrAnlE43jgMFJvArQ38qCTist+orniBFjQxLtdk99vqaZXx8tdRwD/ZJfQ2MhJAvqcmU0brelAK1Q1rGf5QmEcAy5bQ==","from": 1}
{"ver": 1,"sign": "Ga8vZwBFV9Qyegz4OuTkMyT1r9n3Vk/HHn1noLfZM2jVy2Y6xjhBUl2OsfbPu7EQm4pRbrUuVrw2hCv4IVzz7/iA+pJOYhXz8tGvkYedl5vZdI2+Mb3l6dav4g9tDR9FdXJ6SvT7Yi5SaBGqtIwof1UmuMrGDsToQZe6ADRMq2z34A6WpEJknvwP5cxK1TCFvvX46G7ZyiAq6UcBhMHs3r1NSH0eYxEygvg4qYUy4KNGhavO5+M0La+6bKpUarU6izF2DXV2f14mawcHLg6YDjXk6LnNJ7UKH6sUnwOc1AoAHG6B8FslDqW7e5JTvQzbUpuUXKc1WUKruSgFPCInOw==","code": 100,"msg": "成功"}
获取所有请求参数,不包括字节类型参数,如文件、字节流,剔除 sign 字段,剔除值为空的参数,并按照第一个字符的键值 ASCII 码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值 ASCII 码递增排序,以此类推。
将排序后的参数与其对应值,组合成“参数=参数值”的格式,并且把这些参数用&字符连接起来,此时生成的字符串为待签名字符串。
{"ver": 1,"sign": "","stores": [{"province": "广东省","city": "深圳市","company": "西安星巴克咖啡有限公司","id": "50928","name": "咸阳丽彩万达店","addr": "咸阳市秦都区玉泉东路与泉北三巷交叉口西北角咸阳丽彩万达广场1楼","manager": "Higer 司咸林","managerPhone": "13279566588","email": "S50928@starbucks.cn","phone": "","posNum": 2,"opType": "create"},{// ...}],"from": 1}
from=1&stores=[{"addr":"咸阳市秦都区玉泉东路与泉北三巷交叉口西北角咸阳丽彩万达广场1楼","city":"深圳市","company":"西安星巴克咖啡有限公司","email":"S50928@starbucks.cn","id":"50928","manager":"Higer 司咸林","managerPhone":"13279566588","name":"咸阳丽彩万达店","opType":"create","phone":"","posNum":2,"province":"广东省"}]&ver=1
加签的测试密钥
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCiecgdLLeMTlhbjj7ccUj+xtU7u66zYNPcnWsPl9hO0sjVQqDQEBFLcsgkOalsodc/3D1EA+4PDEq/mswK4v9D+Xn/X7c2oYjM8pOVo03qtMEgLzsZKGI/NmxjXD8Ceqe2jEPf/IJ6g2LvQt1qm7BLnoK3i+B2xQvfxo1E1Jetnhe8gh65Dac4G67IcB5WY3zr8qIHVMyUuf/pEIpi6IUVNVVK/3IPN+NJRFGa9z5mUdbZrp/3ogWbBNfwI/5C1Ahw30lmrjgtH2LHHv8Z1DNtUc6oVn00OKMWUTdvHRFrcTcOvnz+/nTt/dmASsxVRlnnVUqQT1RaoK6w/I6h11jlAgMBAAECggEARE2L+e/Vjc9Vx8+Jz6R0Ol8eP0lMTS6UgjdPTbPZBHIKadTjw/QtQRmU193BwuBanAcbXl+EkaDqP5h01NLO2yWiyt/TJs1LtFT6BDstw1CPq9cPMilO/CIF+NNLzeAAZ3aaBiyiMZzQV6M1b97Zg0C01TKhf2yg7EcNFnWE+kBDXT4yoNHG09Ga/WVvdnYFSeGlHf/52kJhXmj4dUiEj4N1ljC9EhoqyUGI8oV6J+txKxnjZazLLw1rpDVXTSJ2ggHB4SNAcAWtbTHXTyt7PI7JNPryf4EQ9zGjWZYSF0e47gqBDBbBiikwyqin41Zwa5uqwFQ4+//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=
使用各自语言对应的 SHA256WithRSA 签名函数利用商户私钥对待签名字符串进行签名,并进行 Base64 编码,得到签名为:
MPW2rlQkyeOzTVLMVxPjLtRncVuEZ10vEWvRWNLs68+7YKIY9pDJkEVZ6GAJrtxBbu2oXkvUey37yz/cPLiwv9hhxLHZy2G5IX1ElyhiS+HG0CGkfnQ1E72tO4cQ3+uqnBdbp/3/fiohPvzZ8eatj4HKFq/Zc6IOmPvPcki4mFh6zEbORSyG+PEJMU3Fiw2uYIuWE2aJaxkiophZvxZGs+eVmKS4/GtNQgdse4wnuueleYRetBB50J55JbzglEVNcgzczIQDSH50Cc2BqIYglFsFWg9no9HEtLlsPTaog+ToKk6EmqxoWZ+bBcF4boSfSKDnLh5c2slaINzhN96XhA==
| 返回码 | 返回描述 |
|---|---|
| 100 | 成功 |
| 101 | 接入方自定义失败描述,方便排查问题 |
| from字段 | 描述 |
|---|---|
| 1 | 星巴克中国(GC) |
| 2 | 统一星巴克(EC) |
| opType字段 | 描述 |
|---|---|
| create | 新增 |
| update | 更新 |