供应链服务
提供基础的商品查询、商品转链、推荐商品feed流查询、权益列表查询、统一的商品和权益发放服务。服务对接之前请先查看:服务调用必读须知
选品服务
根据客户场景实际需求,首先在江湖后台创建自定义商品池,然后通过服务获取这些商品信息。
- 进入"商品管理",点击"创建商品组"。
- 输入"商品组名称",例如:9,9包邮。
- 选择商品组类型:(二选一)
- 自选: 挑选个别商品加入商品组。
- 筛选: 按"规则"筛选出一些列商品,加入到商品组。
- 请选择商品组销售类型:(四选一)
- 综合导购: 包含了京东热销商品、京东联盟、京东分期免息商品。
- 京融服务: 金融优惠券、金融保险、金融财务等商品。
- 京东联盟: 京东联盟推广商品。
- 虚拟商品: 生活权益类商品(视频会员卡、充值卡、本地生活优惠券等)。
- 注意说明: 只有“综合导购”支持商品组类型=筛选。
实物商品采买服务
实物商品采买主要面向企业客户,对商品所有权进行采购,商品来源主要是京东VOP商品,采用先进行预存款,然后通过服务对接方式进行交易的一种模式,相关服务请查看 企业采购
虚拟商品采买服务
通过API方式采买虚拟权益
1、文档说明
1.1、目标
本文档对上游买家商户的对接采买权益的详细说明,帮助商户方便快捷、安全的对接采买权益。
1.2、阅读对象
本文档的阅读对象是有权益采买的商户技术人员。
1.3、业务术语
描述 | |
---|---|
请求 | 以字符串形式把需要传输的数据发送给下游商户的过程。 |
返回 | 下游商户返回订单处理结果给京东金融权益平台的过程。 |
2、安全与开发规范
签名:是将请求串以及秘钥根据一定签名方法生成的签名值,用来防止传输过程中参数被篡改。包含 【url签名】、【业务参数签名】。
2.1、订单规范
- 商户订单号:商户系统的订单号必须能够唯一标识一笔订单
- 订单防重:对每一个订单,应有唯一的订单号,同一个订单号不能重复创建。
3、接口接入方式
3.1、HTTP POST请求规范
请求使用HTTPS POST的方式(application/json;charset=utf-8),使用UTF-8编码,返回的参数也使用JSON格式。
4、标准商户接口
4.1、sdk申请
江湖对于API接口采用公私钥加签验的方式保证通讯安全并提供相应的SDK。SDK已经对加签验逻辑做了封装,使用SDK可直接调用API。请联系江湖方获取。
4.2、公共响应码说明
resultCode | resultMsg |
---|---|
0000 | 成功 |
其它 | 需要失败重试或联系管理员 |
4.3、【虚拟】权益商品下单接口
【描述】
此接口用于下单购买权益商品
请求url: https://api.jddglobal.com/smapi/v1/jdtx/createVirtualAssetOrder
请求方法:post
请求类型:application/json 响应类型:application/json
加密方式:NONE,RSA,ENV_RSA,3DES_RSA
签名方式:NONE,MD5_RSA,SHA256withRSA,SHA1withRSA
4.3.1. 请求公共参数
序号 | 参数 | 类型 | 位置 | 必填 | 描述 |
---|---|---|---|---|---|
1 | jrgw-request-time | string | header | 必填 | 请求时间 |
2 | jrgw-enterprise-user-id | string | header | 必填 | 用户ID |
3 | jrgw-user-id-type | string | header | 必填 | 用户ID类型 |
4 | gw-encrypt-type | string | header | 必填 | 加密方式 |
5 | gw-sign-type | string | header | 必填 | 签名方式 |
6 | gw-sign | string | header | 必填 | 签名 |
7 | jrgw-env-key | string | header | 非必填 | 请求信封 |
4.3.2. 请求业务参数
序号 | 参数 | 类型 | 位置 | 必填 | 描述 |
---|---|---|---|---|---|
1 | biz-content | json | body | 必填 | 一级参数 |
1.1 | jhShopId | string | body | 必填 | 店铺id |
1.2 | businessNo | string | body | 必填 | 商户订单号(由商户提供并保证唯一) |
1.3 | chargeAccount | string | body | 非必填 | 直充账号(对于直充类权益商品,需提供此直充账号) |
1.4 | product | object | body | 必填 | 商品信息 |
1.4.1 | productCode | string | body | 必填 | 商品编码(联系江湖侧获取) |
1.4.2 | quantity | integer | body | 必填 | 商品数量 |
4.3.3. 响应公共参数
序号 | 参数 | 类型 | 位置 | 必填 | 描述 |
---|---|---|---|---|---|
1 | jrgw-resp-code | string | header | 必填 | 返回码 |
2 | jrgw-resp-msg | string | header | 必填 | 返回码描述 |
3 | jrgw-respond-time | string | header | 必填 | 响应时间 |
4 | jrgw-resp-env-key | string | header | 非必填 | 响应信封 |
5 | gw-encrypt-type | string | header | 必填 | 加密方式 |
6 | gw-sign-type | string | header | 必填 | 签名方式 |
7 | gw-sign | string | header | 必填 | 签名 |
4.3.4. 响应业务参数
序号 | 参数 | 类型 | 位置 | 必填 | 描述 |
---|---|---|---|---|---|
1 | biz-content | json | body | 必填 | 一级参数 |
1.1 | resultCode | string | body | 必填 | 业务返回码 |
1.2 | resultMsg | string | body | 非必填 | 业务返回信息 |
1.3 | value | object | body | 必填 | 订单数据 |
1.3.1 | businessNo | string | body | 必填 | 商户订单号 |
1.3.2 | orderNo | string | body | 必填 | 江湖订单号 |
1.3.3 | orderAmount | amount | body | 必填 | 订单金额 |
1.3.4 | grantType | string | body | 必填 | 履约类型('1':兑换码,'2':卡号/密码,'3':充值类) |
1.3.5 | chargeAccountType | string | body | 非必填 | 直充账号类型('1':手机号,'2':邮箱账号,'3':腾讯QQ号,'4':其他账户) |
1.3.6 | chargeAccount | string | body | 非必填 | 直充账号 |
1.3.7 | product | object | body | 必填 | 商品信息 |
1.3.7.1 | productCode | string | body | 必填 | 商品编码 |
1.3.7.2 | productName | string | body | 必填 | 商品名称 |
1.3.7.3 | quantity | integer | body | 必填 | 商品数量 |
1.3.7.4 | salesPrice | amount | body | 必填 | 销售价格 |
1.3.8 | state | integer | body | 必填 | 订单状态(0:失败,1:成功,2:进行中) |
【返回demo】
{
"resultCode": "0000",
"resultMsg": "成功",
"value": {
"orderNo": "100000072459225",
"orderAmount": 1.90,
"businessNo": "150000742164013",
"grantType": "1",
"chargeAccountType": "3",
"chargeAccount": "15600000000",
"product": {
"productCode": "150000742164013",
"productName": "充值卡",
"quantity": 1,
"salesPrice": 1.90
},
"state": 1
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
4.4、【虚拟】权益商品订单查询接口
【描述】
此接口用于权益商品订单状态查询
【请求报文】
请求url: https://api.jddglobal.com/smapi/v1/jdtx/queryVirtualAssetOrder
请求方法:post
请求类型:application/json 响应类型:application/json
加密方式:NONE,RSA,ENV_RSA,3DES_RSA
签名方式:NONE,MD5_RSA,SHA256withRSA,SHA1withRSA
4.4.1. 请求公共参数
序号 | 参数 | 类型 | 位置 | 必填 | 描述 |
---|---|---|---|---|---|
1 | jrgw-request-time | string | header | 必填 | 请求时间 |
2 | jrgw-enterprise-user-id | string | header | 必填 | 用户ID |
3 | jrgw-user-id-type | string | header | 必填 | 用户ID类型 |
4 | gw-encrypt-type | string | header | 必填 | 加密方式 |
5 | gw-sign-type | string | header | 必填 | 签名方式 |
6 | gw-sign | string | header | 必填 | 签名 |
7 | jrgw-env-key | string | header | 非必填 | 请求信封 |
4.4.2. 请求业务参数
序号 | 参数 | 类型 | 位置 | 必填 | 描述 |
---|---|---|---|---|---|
1 | biz-content | json | body | 必填 | 一级参数 |
1.1 | jhShopId | string | body | 必填 | 店铺id |
1.2 | businessNo | string | body | 必填 | 商户订单号(由商户提供并保证唯一) |
4.4.3. 响应公共参数
序号 | 参数 | 类型 | 位置 | 必填 | 描述 |
---|---|---|---|---|---|
1 | jrgw-resp-code | string | header | 必填 | 返回码 |
2 | jrgw-resp-msg | string | header | 必填 | 返回码描述 |
3 | jrgw-respond-time | string | header | 必填 | 响应时间 |
4 | jrgw-resp-env-key | string | header | 非必填 | 响应信封 |
5 | gw-encrypt-type | string | header | 必填 | 加密方式 |
6 | gw-sign-type | string | header | 必填 | 签名方式 |
7 | gw-sign | string | header | 必填 | 签名 |
4.4.4. 响应业务参数
序号 | 参数 | 类型 | 位置 | 必填 | 描述 |
---|---|---|---|---|---|
1 | biz-content | json | body | 必填 | 一级参数 |
1.1 | resultCode | string | body | 必填 | 业务返回码 |
1.2 | resultMsg | string | body | 非必填 | 业务返回信息 |
1.3 | value | object | body | 必填 | 订单数据 |
1.3.1 | businessNo | string | body | 必填 | 商户订单号 |
1.3.2 | grantType | string | body | 必填 | 履约类型('1':兑换码,'2':卡号/密码,'3':充值类) |
1.3.3 | chargeAccountType | string | body | 非必填 | 直充账号类型('1':手机号,'2':邮箱账号,'3':腾讯QQ号,'4':其他账户) |
1.3.4 | chargeAccount | string | body | 非必填 | 直充账号 |
1.3.5 | assetProductInfo | string | body | 非必填 | 卡密信息(对于卡密类和兑换码类有该属性) |
1.3.6 | state | integer | body | 必填 | 订单状态(0:失败,1:成功,2:进行中) |
assetProductInfo示例:
"[{"card":"aa","pwd":"123","expire":"2025-12-12 12:12:12"}]"
对于卡密类,card表示卡号,pwd表示密码,expire表示失效日期
对于兑换码类,card表示兑换码,expire表示失效日期
【返回demo】
{
"resultCode": "0000",
"resultMsg": "成功",
"value": {
"assetProductInfo": "[{\"expire\":\"2025-12-12 12:12:12\",\"pwd\":\"pwd-f7684af1-3222-432d-92cd-6671aae83c98\",\"card\":\"card-95110d2b-4471-4ae7-9571-587fd7036af0\"}]",
"businessNo": "150000742164013",
"grantType": "2",
"chargeAccountType": "1",
"chargeAccount": "15600000000",
"state": 1
}
}
2
3
4
5
6
7
8
9
10
11
12
4.5、【虚拟】权益商品库存查询接口
【描述】
此接口用于查询权益库存查询
【请求报文】
请求url: https://daas.jd.com/jrasset/querySkuInv
请求方法:post
请求参数:公共参数+业务参数
业务参数如下:
参数名称 | 类型 | 可否必填 | 备注 |
---|---|---|---|
firstAccountId | String | 是 | 企业站一级商户号 |
skuList | List<Long> | 是 | 可支持批量SKU查询或者单个SKU查询 |
【返回报文】
报文内容:公共响应参数+业务响应参数
业务响应参数:data
AssetOutInvResp 参数:
参数名称 | 类型 | 可否必填 | 备注 |
---|---|---|---|
sku | Long | 是 | 权益sku |
availableInv | Integer | 否 | 可用库存量 |
【返回demo】
{
"code":"00000000",
"message":"响应成功",
"result":"{"code":"0","msg":"success","data":"[{\"sku\":500000261,\"availableInv\":938}]"}"
}
2
3
4
5
4.3、【虚拟】SKU下单发放接口
【描述】
此接口用于根据sku自动创建订单且发放
【请求报文】
请求url: https://daas.jd.com/jrasset/skuGrant
请求方法:post
请求参数:公共参数+业务参数
业务参数如下:
参数名称 | 类型 | 可否必填 | 备注 |
---|---|---|---|
sku | long | 是 | 商品sku |
sourceSerNo | String | 是 | 唯一标识 (调用方生成 ,规则:$约定一个开头前缀 例:buyer01-000001010100),最大长度100 |
tel | String | 否 | 手机号 |
pin | String | 否 | 直充账号 |
address | String | 否 | 收货人地址 |
firstAccountId | String | 是 | 企业站一级商户号 |
secondAccountId | String | 否 | 企业站二级商户号 |
assetAmount | String | 否 | 商品单价,可以不填写 |
【返回报文】
报文内容:公共响应参数+业务响应参数
业务响应参数:
参数名称 | 类型 | 可否必填 | 备注 |
---|---|---|---|
sku | Long | 是 | 权益商品SKU |
sourceSerNo | String | 是 | 唯一标识 |
orderNo | String | 是 | 主订单号 |
orderAmount | BigDecimal | 是 | 订单金额 |
skuGrantType | Integer | 是 | sku发放类型:1直充pin2发放兑换码3地址发放 |
state | Integer | 是 | 最终状态,可以根据该字段判断发放状态成功失败。成功1、失败0、处理中2,如果是处理中的需要再次调用查询接口 |
【返回demo】
{
"code":"00000000",
"message":"响应成功",
"result":"{"code":"0","msg":null,"data":"{\"sku\":500000261,\"orderSource\":\"jrassetmall\",\"sourceSerNo\":\"20200702-skuGrant-test-01\",\"orderNo\":\"AO-20200702183809-41950\",\"orderState\":3,\"orderAmount\":1.50,\"skuGrantType\":2,\"buyerServiceFeeTotalAmount\":0.00,\"state\":2}"}"
}
2
3
4
5
4.4、【虚拟】SKU发放结果查询
【描述】
此接口用于根据sku以及流水号查询订单创建发放结果
【请求报文】
请求url: https://daas.jd.com/jrasset/skuGrantStates
请求方法:post
请求参数:公共参数+业务参数
业务参数如下:
参数名称 | 类型 | 可否必填 | 备注 |
---|---|---|---|
sku | long | 是 | 商品sku |
sourceSerNo | String | 是 | 唯一标识 |
firstAccountId | String | 是 | 一级商户号 |
【返回报文】
报文内容:公共响应参数+业务响应参数
业务响应参数:
参数名称 | 类型 | 可否必填 | 备注 |
---|---|---|---|
sku | Long | 是 | 权益商品SKU |
assetName | String | 是 | 权益名称 |
orderSource | String | 是 | 上游app |
sourceSerNo | String | 是 | 唯一标识 |
orderNo | String | 是 | 主订单号 |
orderAmount | BigDecimal | 是 | 订单金额 |
grantState | Integer | 是 | 发放状态0失败1成功2发奖中 |
message | String | 否 | 发奖失败信息 |
assetGrantSerNo | String | 是 | 权益平台发放流水号 |
skuGrantType | Integer | 是 | sku发放类型:1直充pin2发放兑换码3地址发放 |
cardCodeAndPwdJson | String | 否 | skuGrantType==2时,返回卡密信息,兑换码格式:{"cardCode":"cdKey"},卡密格式:{"cardCode":"card123","cardPwd":"pwd123"} |
downstreamSerialNo | String | 否 | 权益平台下游流水号,该字段只对于特定的商户有用 |
state | Integer | 是 | 最终状态,可以根据该字段判断发放状态成功失败。成功1、失败0、处理中2,如果是处理中的需要再次调用查询接口 |
【返回demo】
{
"code":"00000000",
"message":"响应成功",
"result":"{"code":"0","msg":null,"data":"{\"sku\":500000261,\"assetName\":\"自营\",\"orderSource\":\"jrassetmall\",\"sourceSerNo\":\"20200702-skuGrant-test-01\",\"orderNo\":\"AO-20200702183809-41950\",\"orderState\":3,\"orderAmount\":1.50,\"grantState\":1,\"message\":null,\"assetGrantSerNo\":\"AG-200702-42616-41\",\"skuGrantType\":2,\"cardCodeAndPwdJson\":\"{\\\"cardCode\\\":\\\"400001141#card61\\\",\\\"cardPwd\\\":\\\"400001141#pwd61\\\"}\",\"downstreamSerialNo\":\"AU-93de1968-8860-4739-892c-9b50586952ec\",\"state\":1}"}"
}
2
3
4
5
商品代发服务
针对渠道利用自有的用户运营营销工具,用户通过一定的门槛达到目标的奖励发放,包括给特定用户发放实物及虚拟的商品,促进用户激励,适合对接这个统一发奖服务。
1.商户获取授权token
接口描述:商家获取授权token服务
接口地址:https://ms.jr.jd.com/gw/generic/zc/h5/m/getMerchantAuthToken
【请求参数】
序号 | 字段 | 字段说明 | 类型 | 必填 | 说明 |
---|---|---|---|---|---|
1 | merchantCode | 商户编号 | String | Y | 江湖分配的商户id |
2 | version | 版本 | String | Y | 版本号,默认为1.0 |
【返回参数】
序号 | 字段 | 字段说明 | 类型 | 必填 | 说明 |
---|---|---|---|---|---|
1 | code | 响应码 | String | Y | 错误码 </brSUCCESS(>SUCCESS("00000", "成功"), SYSTEM_ERROR("10000", "系统错误"), UNAUTHORIZED("10100", "权限不足"), PARAM_ERROR("10200", "请求参数错误"), PARAM_NOT_NULL("10201", "参数必填"), PARAM_NOT_SUPPORT("10502", "不支持的参数") |
2 | msg | 响应信息 | String | Y | 错误信息 |
3 | status | 是否调用成功 | boolean | Y | true:接口调用成功,false:接口调用失败 |
4 | data | 返回数据 | Map | N | 结构体 |
【data】
序号 | 字段 | 字段说明 | 字段类型 | 说明 |
---|---|---|---|---|
1 | token | 授权token | String | 授权token |
【例子】 请求:
{
"merchantCode": "123456789"
}
2
3
响应:
{
"resultCode": 0,
"resultMsg": "操作成功",
"resultData": {
"data": { "token": "a9013f8187a04561a60155358167993d" },
"code": "00000",
"msg": "成功",
"status": true
},
"channelEncrypt": 0
}
2
3
4
5
6
7
8
9
10
11
2.商品代发接口
接口描述:给商户的用户代发商品的服务
接口地址:https://ms.jr.jd.com/gw/generic/zc/h5/m/rewardMerchantSku
【请求参数】
序号 | 字段 | 字段说明 | 类型 | 必填 | 说明 |
---|---|---|---|---|---|
1 | activityCode | 活动编号 | String | Y | 江湖发奖后台配置的活动编号 |
2 | merchantCode | 商户编号 | String | Y | 江湖分配的商户id |
3 | sku | 商品编号 | String | Y | 江湖后台创建的商品编号 |
4 | customerNo | 用户唯一标识 | String | Y | 商户方的唯一用户标识 |
5 | custType | 用户类型 | Integer | Y | 0:非pin,1:Jdpin, 默认为0 |
6 | deviceInfoDto | 风控设备参数 | DeviceInfoDto | N | 风控设备参数 |
7 | extMap | 额外参数 | Map | N | 预留参数 |
8 | version | 版本 | String | Y | 版本号,默认为1.0 |
9 | sign | 签名 | String | Y | 依据merchantCode+""+activityCode+""+sku+""+customerNo+""+token进行数据拼接,进行md5加密拼成 |
【返回参数】
序号 | 字段 | 字段说明 | 类型 | 必填 | 说明 |
---|---|---|---|---|---|
1 | code | 响应码 | String | Y | 错误码 </brSUCCESS(>SUCCESS("00000", "成功"), SYSTEM_ERROR("10000", "系统错误"), PARAM_ERROR("10200", "请求参数错误"), PARAM_NOT_NULL("10201", "参数必填"), PARAM_NOT_SUPPORT("10502", "不支持的参数"), REJECT_TOKEN("10101", "token校验不通过"), REWARD_FAILD("20000", "发奖失败") |
2 | msg | 响应信息 | String | Y | 错误信息 |
3 | status | 是否调用成功 | boolean | Y | true:接口调用成功,false:接口调用失败 |
4 | data | 返回数据 | Map | N | 结构体 |
【data】
序号 | 字段 | 字段说明 | 字段类型 | 说明 |
---|---|---|---|---|
1 | sku | 商品编号 | String | |
2 | skuName | 商品名称 | String | |
3 | skuDesc | 商品描述 | String | |
4 | skuImageUrl | 商品图片地址 | String | |
5 | skuStart | 商品开始时间 | Date | |
6 | skuEnd | 商品结束时间 | Date | |
7 | activityCode | 活动编号 | String | |
8 | activityStart | 活动开始时间 | Date | |
9 | activityEnd | 活动结束时间 | Date | |
10 | customerNo | 用户唯一标识 | String | |
11 | custType | 用户类型 | Integer | |
12 | couponNo | 券码 | String | 优惠券码 |
【例子】 请求:
{
"merchantCode":"123456789",
"activityCode":"63b6b641efca4896a81f81c5cfeb7767",
"sku":"123456789",
"customerNo":"dengjiang",
"sign":"79d059718d41656cc568df52190b8fff"
}
2
3
4
5
6
7
响应:
{
"resultCode":0,
"resultMsg":"操作成功",
"signature":null,
"resultData":{
"msg":"成功",
"code":"00000",
"data":{
"skuDes":"测试商品描述",
"skuImageUrl":"http://123.jd.com",
"activityStart":1591286400000,
"activityName":"数字营销发奖活动测试",
"skuEnd":1593532800000,
"couponNo":"64ca2e137e894a50936e0e89dcc27ec2",
"skuName":"测试商品",
"activityCode":"63b6b641efca4896a81f81c5cfeb7767",
"skuStart":1591200000000,
"custType":0,
"sku":"123456789",
"customerNo":"dengjiang",
"activityEnd":1592582400000,
"status":1
},
"status":true
},
"success":null,
"channelEncrypt":0
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28