对接-京东联盟CPS对接记录记录
说明
京东联盟订单同步主要用到订单行同步接口
同步介绍

- 注册京东联盟之后,除了会拿到相关key跟秘钥,还会得到自己商城的推广位ID
- 通过京东商品落地页、推广位ID以及自己定义的subUnionId可以得到自己商城的推广链接。
- 用户通过推广链接购买商品后可以通过订单行查询接口将京东联盟订单都同步回来
- 通过推广位ID跟自定义的subUnionId规则将自己平台的订单筛选出来进行处理
同步代码
京东订单同步脚本使用订单行查询接口,每分钟去同步京东的订单,同步回来之后根据推广位id跟subUnionId的规则处理自己商城的订单,根据京东订单码和相关字段金额判定该订单的目前的状态。
1、京东订单建议根据更新时间进行分钟级同步
2、每页订单最多查询500条,如果超过500条,需要判定hasmore进行递归处理
3、验证同步规则,验证推广位id,验证subUnionId规则
4、规则内的订单转化为商城订单,进入商城订单流转流程
/**
* @Description 京东订单处理,每分钟
* @Author Depp
* @DateTime 2020-04-11
* @return [type] [description]
*/
public function actionOrderUpdate(){
//参数设置
$params['pageIndex']=1;
$params['pageSize']=500;
$params['type']=3;
$params['startTime']=date('Y-m-d H:i',strtotime('-1 minute')).":00";
$params['endTime']=date('Y-m-d H:i').":00";
self::orderSelect($params);//开启同步
}
/**
* @Description 京东订单查询接口
* @Author Depp
* @DateTime 2020-04-08
* @return [type] [description]
*/
static function orderSelectT($params){
$jdOrderData=self::$client->promotion->orderRow($params); //查询订单
if ($jdOrderData == false ) { //错误数据处理
throw new \Exception('京东订单同步接口报错:'.self::$client->getError());
}
if(!isset($jdOrderData['data'])){ //错误数据处理
throw new \Exception('京东订单查询无结果');
}
foreach ($jdOrderData['data'] as $key => $value) {
if($value['price']==0 || $value['skuNum']==0){//订单金额为0或者下单数量为0不同步
continue;
}
if($value['validCode']<15){//无效订单不同步
continue;
}
//京东订单表数据同步处理
$orderNum=self::jdOrderProcess($value,$uid);
}
if($jdOrderData['hasMore']){ //每页取500条,判断下一页是否还有订单,进行递归处理
$params['pageIndex']+=1;
self::orderSelectT($params);
}
}
参数详解
京东订单同步接口有很多参数,我就选取有关订单状态判定的重要参数讲一下。
重要参数
| 参数 | 示例 | 说明 |
|---|---|---|
| id | 415900297816660001 | 标记唯一订单行 |
| parentId | 0 | 父单的订单ID |
| orderTime | 2020-01-02 15:50:16 | 下单时间 |
| finishTime | 2020-01-03 15:59:16 | 完成时间 |
| modifyTime | 2020-01-02 16:01:03 | 更新时间 |
| unionId | 1000618618 | 推客ID |
| skuId | 44303679033 | 商品ID |
| skuNum | 1 | 商品数量 |
| skuReturnNum | 1 | 商品已退货数量 |
| price | 69.0 | 商品单价 |
| commissionRate | 50 | 佣金比例 |
| finalRate | 90 | 最终比例 |
| estimateCosPrice | 54.0 | 预估计佣金额 |
| estimateFee | 2.43 | 推客的预估佣金 |
| actualCosPrice | 54.0 | 实际佣金金额 |
| actualFee | 2.42 | 推客分得的实际佣金 |
| validCode | 16 | sku维度的有效码 |
| positionId | 1005689 | 推广位id |
- finalRate:最终比例( (一级分佣比例+一级分成比例)*二级分佣比例)
- estimateCosPrice:预估计佣金额,即用户下单的金额(已扣除优惠券、白条、支付优惠、进口税,未扣除红包和京豆),有时会误扣除运费券金额,完成结算时会在实际计佣金额中更正。如订单完成前发生退款,此金额也会更新。
- estimateFee:推客的预估佣金(预估计佣金额佣金比例最终比例),如订单完成前发生退款,此金额也会更新。
- actualCosPrice:实际计算佣金的金额。订单完成后,会将误扣除的运费券金额更正。如订单完成后发生退款,此金额会更新。
- actualFee:推客分得的实际佣金(实际计佣金额佣金比例最终比例)。如订单完成后发生退款,此金额会更新。
- validCode:sku维度的有效码(-1:未知,2.无效-拆单,3.无效-取消,4.无效-京东帮帮主订单,5.无效-账号异常,6.无效-赠品类目不返佣,7.无效-校园订单,8.无效-企业订单,9.无效-团购订单,10.无效-开增值税专用发票订单,11.无效-乡村推广员下单,13.无效-违规订单,14.无效-来源与备案网址不符,15.待付款,16.已付款,17.已完成)
状态分析
其他-无效 15-代付款 3-取消订单 16-已付款
17已完成-{
预估佣金和推客的预估佣金为0时(确认收货前退款)---- 实际为已退款
实际佣金和推客的实际佣金为0,退货数量不为0 (确认收货后进行退款)------实际为已退款
实际佣金和推客的实际佣金都有值=(确认收货成功)------ 订单完成暂时没有退款操作
}
结尾
心如花木,向阳而生。