platform_id = 127; $refund->shop_no = $config['shop_no']; $refund->tid = $item['order']['order_no']; $refund->refund_no = $item['order_no']; // type=1:退款(未发货退款);type=2:退款不退货;type=3:退货 // 售后类型:1=仅退款,2=退货退款,3=换货 $type = $item['type']; switch ($item['type']) { case 1: // 仅退款 - 判断订单有没有发货 if ($item['order']['order_status'] < OrderStatusEnum::SHIPMENTS) { // 没发货的情况下 $type = 1; // 未发货的仅退款 } else { $type = 2; // 已发货的仅退款 } break; case 2: $type = 3; break; case 3: // ERP那边没有换货这个概念,只有退货退款这个概念 $type = 3; break; } $refund->type = $type; // 可选值:wait_seller_agree(申请退款), seller_refuse(拒绝退款) , closed(退款关闭) ,goods_returning(待退货) goods_receiving(待收货),success(退款成功) // 有可能需要通过step_status进行确认 if ($item['refund_status'] == RefundStatusEnum::FINISH) { switch ($item['step_status']) { case RefundStatusEnum::REFUSE: $item['refund_status'] = RefundStatusEnum::REFUSE; // 拒绝申请 break; } } $refund->status = WangDianTongEnum::REFUND_STATUS_MAP[$item['refund_status']]; // 退款金额 $refund->refund_fee = $item['reality_refund_price']; // 买家昵称(不传该字段,默认取原始订单上客户网名) $refund->buyer_nick = EmojiHelper::convert(!empty($item['base_user']['nickname']) ? $item['base_user']['nickname'] : ''); // 单据创建时间,时间格式:yyyy-MM-dd HH:mm:ss $refund->refund_time = date('Y-m-d H:i:s', $item['created_at']); // 退款原因 $refund->reason = EmojiHelper::convert(!empty($item['reason']) ? $item['reason'] : ''); // 备注 $refund->desc = EmojiHelper::convert(!empty($item['remark']) ? $item['remark'] : ''); // 物流单号 $refund->logistics_no = $item['express_no']; // 仅在买家邮寄商品时才有 // 物流公司名称 $refund->logistics_name = $item['express']; // 仅在买家邮寄商品时才有 $refundItem = new RefundItem(); $refundItem->oid = "{$item['order']['order_no']}_{$item['order_detail_id']}"; $refundItem->num = $item['orderDetail']['num']; $order_list = []; $order_list[] = $refundItem->toArray(); // 售后子订单 $refund->order_list = $order_list; return $refund->toArray(); } }