健康开普勒商城API
#
简介:API模式是合作方开发自己的商城页面,用户在合作方完成购买后,通过API接口的形式将商品单数据同步至京东,由京东进行购物履约。合作方获取京东侧的商品信息,价格以及库存以后,自行开发页面。用户选择商品\药品,填写地址,购物\药人相关信息以后通过京东侧预结算接口校验,并渲染合作方自己的预结算页面,用户操作提单后,合作方将订单数据通过结算接口同步至京东侧。提单后,京东侧会将单据的状态信息,拆单信息,物流信息,发票信息等通过合作方提供的接口地址回传给合作方,从而完成整个购药流程。
#
接入流程说明:
- 合作方获取商品信息,库存信息,判断是否可以购药;合作方通过自行开发的页面收集提单信息包含商品\药品,用药人,收货地址等,调用京东侧预结算页面,返回预结算相关信息,包含价格运费等信息;用户在合作方页面提交购药单同步至京东,京东侧返回京东侧购药单号;提单成功后通过状态同步接口同步支付状态到京东侧;通过取消接口告知用户取消订单,京东侧会返回取消状态,成功,失败,取消中等,若返回取消成功,合作方给用户退款,退款完成通过状态同步京东是否退款成功;京东侧在提单后的各个环境会通过合作方提供的URL地址将订单拆单,状态变更,物流等信息同步至合作方;合作方可以申请开具发票,京东侧开局发票后通过合作方URL将开具的发票信息同步给合作方。
- 图中的接口需要双方业务沟通具体对接细节决定是否使用,例如业务中不涉及到拆单,则不需要接入拆单通知,不需要发票,则不需要调用申请以及接收发票等。
- 调用京东侧统一走宙斯使用标准接口,通知或者查询合作方的接口需要合作方提供URL地址,京东侧会在各个节点调用合作方的接口进行数据同步。
#
接入流程图示:#
一.合作方调用京东侧方向#
1.1 商品模块1.1.1 分页查询京东商品列表#
1.1.2 查询京东商品详情#
1.1.3 批量查询京东商品库存状态#
1.1.4 药品商品搜索#
#
1.2 订单模块1.2.1 京东预结单#
1.2.2 提交京东订单#
1.2.3 三方订单状态同步#
1.2.4 申请开具京东发票#
1.2.5 申请取消京东订单#
1.2.6 分页查询京东订单列表#
1.2.7 查询京东订单详情#
1.2.8 查看京东订单物流详情#
1.2.9 服务订单未使用申请退款#
#
1.3 体检模块1.3.1 根据skuId查询可预约门店列表#
1.3.2 查询门店三级级联地址#
1.3.3 查询门店排期列表#
1.3.4 提交预约#
1.3.5 预约单信息查询#
1.3.6 修改预约时间#
1.3.7 取消预约#
1.3.8 查询体检报告url#
1.3.9 校验加项包是否互斥#
1.3.10 根据sku查询加项包列表#
#
1.4 通用化接口1.4.1 查询京标地址列表#
1.4.2 根据国标查询京标#
1.4.3 查询国标地址列表#
1.4.5 根据经纬度查询京标地址#
#
二.京东侧回调合作方方向#
2.1 京东订单发票同步入参参数:
参数名 | 类型 | 是否必传 | 描述 |
---|---|---|---|
orderId | String | Y | 京东单号 |
invoice | Map | Y | 发票信息 |
sourceTimestamp | Long | Y | 源头消息处理时间戳 |
invoice
参数名 | 类型 | 描述 |
---|---|---|
invoiceDate | String | 发票日期 ,格式为 '1999-09-21' |
invoiceCode | String | 发票代码 |
invoiceNo | String | 发票号码 |
invoiceType | Integer | 发票类型 1 电子,2 纸质 |
invoicePic | String | 发票图片 |
出参参数:
data中返回布尔类型值,此接口根据code=0000 && data=true 判定成功
{"response":{"code":"0000","errMsg":"","uuid":"1ded1b62-c60f-4e4f-9620-a78a16b8f284","data":true}}
#
2.2 京东订单拆单同步入参参数:
参数名 | 类型 | 是否必传 | 描述 |
---|---|---|---|
orderId | String | Y | 京东单号 |
subOrderList | List<Map> | Y | 子单详情 |
sourceTimestamp | Long | Y | 源头消息处理时间戳 |
Map-subOrderList
参数名 | 类型 | 描述 |
---|---|---|
subOrderId | String | 子单id |
subOrderStatus | String | 子单状态 |
totalPrice | String | 子单总价t |
subOrderSkuList | List<Map> | 子单skulis |
Map-subOrderSkuList
参数名 | 类型 | 描述 |
---|---|---|
skuId | String | skuid |
num | Integer | 数量 |
skuName | String | skuid名称 |
totalPrice | String | sku总价 |
skuPrice | String | sku单价 |
出参参数:
data中返回布尔类型值,此接口根据code=0000 && data=true 判定成功
{"response":{"code":"0000","errMsg":"","uuid":"1ded1b62-c60f-4e4f-9620-a78a16b8f284","data":true}}
#
2.3 京东订单状态变更同步入参参数:
参数名 | 类型 | 是否必传 | 描述 |
---|---|---|---|
orderId | String | Y | 京东单号 |
orderStatus | String | Y | 订单状态(若为处方药订单,则包含处方药店审核状态) |
operator | String | N | 操作人 |
operateDesc | String | N | 操作说明 |
operateTime | String | N | 操作时间 '2020-11-19 20:00:30' |
sourceTimestamp | Long | Y | 源头消息处理时间戳 |
orderStatu枚举值 (订单枚举按英文走)
NEEDPAY("NEEDPAY", "待支付"),
PAYED("PAYED", "已支付"),
REFUND("REFUND","退款中"),
AUDIT_PASS("AUDIT_PASS", "处方审核通过"),
AUDIT_UNPASS("AUDIT_UNPASS", "处方审核不通过"),
ORDER_FINISH("ORDER_FINISH", "京东订单完成"),
CANCELED("CANCELED", "订单已取消");
出参参数:
data中返回布尔类型值,此接口根据code=0000 && data=true 判定成功
{"response":{"code":"0000","errMsg":"","uuid":"1ded1b62-c60f-4e4f-9620-a78a16b8f284","data":true}}
#
2.4 京东反查三方订单接口入参参数:
参数名 | 类型 | 是否必传 | 描述 |
---|---|---|---|
orderId | String | Y | 京东单号 |
出参参数:
data中返回实体类型值,此接口根据code=0000 && data!=null 判定成功
{"response":{"code":"0000","errMsg":"","uuid":"1ded1b62-c60f-4e4f-9620-a78a16b8f284","data":<实体Map>}}
参数名 | 类型 | 描述 |
---|---|---|
orderId | String | 京东单号 |
reason | String | 原因描述(退款、审核失败时,需提供该字段) |
partnerOrderId | String | 合作方订单号 |
paySerial | String | 支付流水号 |
partnerOrderStatus | String | 合作方订单状态(PAYED(已支付)、REFUNDED(退款完成)REFUND_FAIL(退款失败)处方审核完成(处方药订单,需要接收该状态) |
#
2.5 京东回传体检信息入参参数:
参数名 | 类型 | 是否必传 | 描述 |
---|---|---|---|
reqId | String | Y | 请求唯一标识 |
projectId | Long | 是 | 项目id 15位数字 |
openId | String | 是 | 外部平台用户唯一标识 |
relationType | String | 是 | 预约人类型 1-本人,2-亲属 |
appointmentId | String | 是 | 预约单号 取消后重新预约成功会继续推送 18位以内 |
appointTime | String | 否 | 预约时间 时间格式:yyyy-MM-dd |
appointStatus | int | 是 | 预约状态 3-预约成功,4-已到检,12-取消中13-取消预约,99-已出报告 |
storeName | String | 否 | 门店名称 |
skuName | String | 否 | 套餐名称 |
extendInfo | String | 否 | 扩展信息 Json形式{“reportTime”:”报告生成时间”“checkTime”:”到检时间”,“bbcShopId”:”BBC商城ID”} |
timestamp | String | 是 | 时间戳 时间格式:yyyy-MM-dd HH:mm:ss |
出参参数:
data中返回实体类型值,此接口根据code=0000 && data!=null 判定成功
{"response":{"code":"0000","errMsg":"","uuid":"1ded1b62-c60f-4e4f-9620-a78a16b8f284","data":<实体Map>}}
data:
参数名 | 类型 | 描述 |
---|---|---|
msg | String | 推送成功 |
code | String | 0000 |
#
2.6 服务订单售后退款消息通知入参参数:
参数名 | 类型 | 是否必传 | 描述 |
---|---|---|---|
orderId | String | Y | 京东订单id |
afsServiceId | String | Y | 售后服务单ID |
afsStatus | String | Y | 售后服务单状态,AUDIT("AUDIT", "待审核"),PROCESS("PROCESS", "处理中"),COMPLETE("COMPLETE", "已退款"),REJECT("REJECT", "已驳回"); |
rejectReason | String | Y | 驳回原因 |
applyTime | String | Y | 售后申请时间 |
finishTime | String | Y | 售后完成时间 |
出参参数:
data中返回实体类型值,此接口根据code=0000 && data!=null 判定成功
{"response":{"code":"0000","errMsg":"","uuid":"1ded1b62-c60f-4e4f-9620-a78a16b8f284","data":<实体Map>}}
data:
参数名 | 类型 | 描述 |
---|---|---|
msg | String | 推送成功 |
code | String | 0000 |
#
2.7 京东订单发货消息通知入参参数:
参数名 | 类型 | 是否必传 | 描述 |
---|---|---|---|
orderId | String | Y | 京东订单id |
notifyTime | Date | Y | 消息发送时间 |
waybillDTOList | List | Y | 运单详情列表 |
waybillDTO详情:
参数名 | 类型 | 是否必传 | 描述 |
---|---|---|---|
carrier | String | Y | 承运人id |
notifyTime | Date | Y | 消息发送时间 |
waybillCode | String | Y | 货运单号 |
carrierName | String | Y | 承运方名称 |
出参参数:
data中返回实体类型值,此接口根据code=0000 && data!=null 判定成功
{"response":{"code":"0000","errMsg":"","uuid":"1ded1b62-c60f-4e4f-9620-a78a16b8f284","data":<实体Map>}}
data:
参数名 | 类型 | 描述 |
---|---|---|
msg | String | 推送成功 |
code | String | 0000 |