点三  电商OMS/ERP/API帮您串联线上线下订单业务-稳定运行11年【免费试用】

客服热线

400 8080 092

当前位置: 首页 > 资讯 > API接口

蘑菇街API使用说明

编辑:原创    时间:2024-06-07 16:15:06

如果你正在找蘑菇街API使用说明,不妨看看本篇文章,内容涵盖了蘑菇街API调用入口、蘑菇街API调用组装和蘑菇街API相关说明,希望能够帮助开发者解决蘑菇街API对接过程中的相关问题。

 

一、蘑菇街API调用入口

用入口即调用API的请求访问该地址,开放平台提供了正式环境入口网关。

正式环境对应蘑菇街线上数据,正式环境测试则直接用正式环境的入口网关、AppKey、AppSecret及蘑菇街账号。

正式环境http网关:https://openapi.mogujie.com/invoke

输入/输出字符集:UTF-8

请求方式:POST

 

二、蘑菇街API调用组装

调用API:xiaodian.item.get(查询商品详情),使用系统默认MD5加密,因为各语言语法不一致,以下实例只体现逻辑。假设AppSecret为TESTAPPSECRET

1、输入参数为

method=xiaodian.item.get(公共参数)

access_token=TESTACCESSTOKEN(公共参数)

timestamp=1367819523(公共参数)

format=json(公共参数)

app_key=10011(公共参数)

version=1.0(公共参数)

sign_method=md5(公共参数)

itemId=95i27(API参数)

2、按首字母ASCII升序排列

access_token=TESTACCESSTOKEN

app_key=10011

format=json

itemId=95i27

method=xiaodian.item.get

sign_method=md5

timestamp=1367819523

version=1.0

3、组装加签字符串

将第2步排序好的参数进行参数名与参数值格式拼接,并在首尾加上AppSecret,如下:

TESTAPPSECRETaccess_tokenTESTACCESSTOKENapp_key10011formatjsonitemId95i27 methodxiaodian.item.getsign_methodmd5timestamp1367819523version1.0TESTAPPSECRET

注意:复杂对象(object、array等)请用标准json格式

加签的字符串中存在全角或中文字符时请用转成UTF-8字符集编码

4、生成sign(测试工具

将第3步组装的字符串通过MD5编码获取到32位字符串再转大写后得到32位大写MD5值(使用标准MD5库)

34619030B487EC1B49B9EF564A877925

当前请求中除sign参数外其他所有参数(公共参数、API参数)都参与加签

5、拼装API请求

将所有参数(公共参数、API参数)值转换为UTF-8编码后进行拼装,通过浏览器访问该地址,即成功调用一次接口,如下(http网关):

https://openapi.mogujie.com/invoke?sign=34619030B487EC1B49B9EF564A877925×tamp=1367819523&version=1.0& app_key=10011&method=xiaodian.item.get&format=json&itemId=95i27&&sign_method=md5&access_token=TESTACCESSTOKEN

注意:如果在应用中使用类似HttpClient工具发送请求,请注意设置请求编码为UTF-8

如果响应出现乱码请将应用编码设置为UTF-8

6、返回结果解密

涉及到敏感信息的接口,会对返回结果进行加密。

解密:使用应用的appSecret的前16位作为key,对加密结果AES解密即可。

具体算法:AES/ECB/PKCS5Padding 不带偏移量

appSecret = mysecretmysecretmysecretmysecret

key = appSecret.sub(0, 16)

output = AES(input, key)

只有在请求结果正确的时候才会加密。 具体结果是否加密,请根据返回结果的dataEncrypted字段来判断

参考代码:

public class AESUtil {

private static final String ALGORITHM = "AES/ECB/PKCS5Padding";

public static String decrypt(String cipherText, String key) throws NoSuchPaddingException, NoSuchAlgorithmException,InvalidKeyException, BadPaddingException, IllegalBlockSizeException {

Cipher cipher = Cipher.getInstance(ALGORITHM);

SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), "AES");

cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);

byte[] plainText = cipher.doFinal(Base64.getDecoder() .decode(cipherText));

return new String(plainText);

}

}

 

三、蘑菇街API相关说明

调用API,必须传入公共参数和api参数(目前只支持UTF-8编码)。公共参数详细介绍如下;应用参数则根据不同API 具体入参,更多请参考API 文档。这里以调用xiaodian.item.get 为例说明(通过API文档可看到调用该API应用参数)

1、公共参数

参数名称

类型

必填

描述

app_key

long

接入时申请的app_key

method

String

接口名称

access_token

String

Oauth2.0授权获得的access_token

sign

String

API 调用参数(除sign外)进行 md5 加密获得。参数的顺序为字母表的顺序

format

String

响应格式。默认为json格式,固定

timestamp

long

时间戳,使用Unix时间戳格式

version

String

API协议版本,固定值为:1.0

sign_method

String

参数的加密方法选,当前只支持Md5,此参数不参与加密

2、系统错误码

返回码共7位,其中前2位代表系统码,后5位代表错误码; 开放平台系统码为:00。其中0000000为特殊返回码,代表成功; 注:0000000为所有业务方共享的成功返回码,后缀为500的返回码,代表代码内部处理错误。

系统码

Api类别

00

开放平台

10

交易

11

商品

12

店铺

13

物流

14

基础类目

20

用户

开放平台系统码定义

返回码

错误描述

0000000

成功

0000001

参数校验失败

0000002

Timesteamp时间误差超过5分钟

0000003

SignMethod错误

0000004

sign错误

0000005

服务实现不存在

0000006

参数类型错误

0000007

参数不能为空

0000008

参数不识别

0000009

API未订阅或者审批未通过

0000010

AccessToken已过期

0000011

aAccessToken不存在

0000012

无法识别接入的应用唯一标识

0000013

触发流控,请降低调用频率

0000014

API调用超时

0000015

API不存在

0000016

AppKey不存在

0000017

触发应用限流,请降低调用频率

0000018

大促期间API限流

0000020

API未上线,不能调用

0000021

App未审批通过

0000022

App未上线

0000401

API服务已到期

0000500

系统错误

0007001

更新token失效

0007002

AuthCode不存在

物流返回码定义:

返回码

错误描述

1020001

快递单号格式不正确

1020002

订单状态不一致

1020003

添加物流信息失败,请重试

1020004

当前用户没有操作权限

1020005

退货退款中订单不允许发货

1020006

发货操作太频繁

1020007

发货物流公司黑名单,禁止使用

商品、店铺返回码定义:

返回码

错误描述

1100400

参数错误

1100401

请先进行实名认证

1101400

商品数据出错

1101403

无访问该商品权限

1101404

商品不存在或已被删除

1102400

SKU数据出错

1102404

SKU不存在或已被删除

1103404

类目不存在

1200404

请先开通店铺

订单管理返回码定义:

返回码

错误描述

1010001

参数异常

1010002

订单数据查询失败

1010003

卖家无此订单查询权限

3、应用参数

详见相应API说明文档

4、限流

目前限流分API和APP两种限流。

API - 针对单个API总共流量进行的限流,不区分应用。

APP - 针对单个应用(AppKey)进行的限流,不区分API。

 

如果还有其他关于电商平台对接的问题,或者想要快速对接蘑菇街开放平台,可以咨询点三客服获取解决方案。

50000+企业的共同选择
点三全渠道全链路ERP

免费注册试用

400 8080 092