文件路径:
shop\controllers\Seller\Service\ReturnCtl.php
方法:
agreeReturn()
参数:
order_return_id:退单id
return_shop_message:商家处理备注
# 1.判断此退单是否已经被处理。
if($return['return_state'] == Order_ReturnModel::RETURN_SELLER_PASS)
{
$msg = __('已经退款,请刷新页面。');
$status = 200;
$this->data->addBody(-140, array(), $msg, $status);
return false;
}
# 2.判断商家处理备注是都存在违禁词
if (Text_Filter::checkBanned($return_shop_message, $matche_row))
{
$msg = __('含有违禁词');
$status = 250;
$this->data->addBody(-140, array(), $msg, $status);
return false;
}
# 3.判读订单是否已经收获,如果没有收货,不扣除卖家资金。已确认收货则扣除卖家资金。
$order_finish:订单是否已经完成确认收货
false :已收货
true:未收货
# 4.获取用户的账户资金信息
$key = Yf_Registry::get('shop_api_key');
$formvars = array();
$user_id = Perm::$userId;
$formvars['user_id'] = $user_id;
$formvars['app_id'] = Yf_Registry::get('shop_app_id');
$money_row = get_url_with_encrypt($key, sprintf('%s?ctl=Api_User_Info&met=getUserResourceInfo&typ=json', Yf_Registry::get('paycenter_api_url')), $formvars);
$user_money = $money['user_money']; //账户余额
$user_money_frozen = $money['user_money_frozen']; //账户冻结资金
//判断订单是否已经结算
if($settlement_unixtime >= $order_finish_unixtime )
{
//结算时间大于订单完成时间。需要扣除卖家的现金账户
$money = $user_money;
$pay_type = 'cash';
}
else
{
//结算时间小于订单完成时间。需要扣除卖家的冻结资金,如果冻结资金不足就扣除账户余额
$money = $user_money_frozen + $user_money;
$pay_type = 'frozen_cash';
}
# 5.判断该退单是否是当前商家的订单
# 6.当退款金额小于用户资金时,或者订单为未收货订单时流程继续,否则报错。
$shop_return_amount = $return['return_cash'] - $return['return_commision_fee'];
$shop_return_amount:退款金额
$money:用户资金
修改退货单状态
$data['return_shop_message'] = $return_shop_message;
if ($return['return_goods_return'] == Order_ReturnModel::RETURN_GOODS_RETURN)
{
$data['return_state'] = Order_ReturnModel::RETURN_SELLER_PASS;
}
else
{
$data['return_state'] = Order_ReturnModel::RETURN_SELLER_GOODS;
}
$data['return_shop_time'] = get_date_time();
$flag = $this->orderReturnModel->editReturn($order_return_id, $data);
修改退货单成功后,如果订单为已收货订单,则修改商家金额。
if($flag && !$order_finish)
{
//扣除卖家的金额
$key = Yf_Registry::get('shop_api_key');
$formvars = array();
$user_id = Perm::$userId;
$formvars['user_id'] = $user_id;
$formvars['user_name'] = Perm::$row['user_name'];
$formvars['app_id'] = Yf_Registry::get('shop_app_id');
$formvars['money'] = $shop_return_amount * (-1);
$formvars['pay_type'] = $pay_type;
$formvars['reason'] = '退款';
$formvars['order_id'] = $order_base['order_id'];
$formvars['goods_id'] = $return['order_goods_id'];
$rs = get_url_with_encrypt($key, sprintf('%s?ctl=Api_User_Info&met=editReturnUserResourceInfo&typ=json', Yf_Registry::get('paycenter_api_url')), $formvars);
$dist_rs['status'] = 200;
//分销
if(isset($dist_return_order) && !empty($dist_return_order)){
$key = Yf_Registry::get('shop_api_key');
$formvars = array();
$user_id = Perm::$userId;
$formvars['user_id'] = $dist_order['seller_user_id'];
$formvars['user_name'] = $dist_order['seller_user_name'];
$formvars['money'] = ($dist_return_order['return_cash']-$dist_return_order['return_commision_fee'])*(-1);
$formvars['order_id'] = $dist_order['order_id'];
$formvars['goods_id'] =0;
$formvars['app_id'] = Yf_Registry::get('shop_app_id');
$formvars['pay_type'] = $pay_type;
$formvars['reason'] = '退款';
$dist_rs = get_url_with_encrypt($key, sprintf('%s?ctl=Api_User_Info&met=editReturnUserResourceInfo&typ=json', Yf_Registry::get('paycenter_api_url')), $formvars);
}
if($rs['status'] == 200 && $dist_rs['status']==200)
{
$flag = true;
}
else
{
$flag = false;
}
}
- 序言
- 系统要求
- 版本更新日志
- 远丰商城技术对接说明
- 开发指导
- 系统架构
- 负载集群
- 云存储
- 框架内容
- 基础
- 开发规范
- 目录结构
- 架构
- 架构总览
- 数据库
- 数据库连接
- 基本使用
- 缓存
- 配置
- 路由
- 数据字典
- ucenter
- shop
- paycenter
- ucenter_admin
- shop_admin
- paycenter_admin
- shop1
- shop2
- shop3
- 通讯内容
- 商家中心
- 顶部导航栏
- 店铺信息栏
- 店铺及商品提示栏
- 交易提示栏
- 销售情况统计栏
- 集群架构图
- 单品销量排行栏
- 店铺运营推广栏
- 平台联系方式栏
- 订单物流
- 商品
- 商品列表
- 商品详情
- 商品发布与编辑
- 分销商品
- 关联版式
- 商品规格
- 图片空间
- 淘宝导入
- 订单流程
- 交易订单
- 订单退款/退货
- 促销
- 团购管理
- 加价购
- 限时折扣
- 满即送
- 代金券管理
- 分销
- 店铺
- 店铺设置
- 自销产品供应商
- 实体店铺
- 品牌申请
- 店铺信息
- 消费者保障服务
- 门店账号
- 分销商--产品供应商
- 分销明细
- 批发市场
- 商家微信公众号
- 售后服务
- 咨询管理
- 投诉管理
- 退款管理
- 退货管理
- 杂项
- 远程上传图片
- 接口(废弃,参考最外层接口项)
- 接口说明
- 品牌
- 商品规格
- 商品类型
- 商品分类
- 商品
- 订单
- 商品/店铺收藏
- 足迹
- 退款及退货
- 商家店铺
- 会员
- 入驻协议
- 订单接口
- 商品接口
- 订单物流接口
- 商家中心接口
- 促销接口
- 快递鸟物流接口
- 代金券接口
- 首页版块
- 团购
- 平台红包
- 限时折扣接口
- 拼团接口
- wap首页模板
- JS
- 银联支付
- 多语言
- 商品评分
- 图片加载
- 买家申请退款退货
- 商家退款退货
- 平台退款退货
- 添加发票
- 提交订单
- 确认订单
- 运费销售区域
- 获取会员地址
- 充值
- 导出XLS
- 商城系统集成
- 多语言实现
- 三级分销推广链接发展推广员
- app.ini.php
- 去分销
- 版本更新
- 物流支持
- 运营人员建议
- 业务逻辑
- 统计结算
- 客服消息
- 账号
- 三级分销
- IM
- 配置
- 平台帐号
- 活动数据表说明
- 接口
- 数据库中间键
- MyCat的优势
- 概念说明
- Mycat的下载及安装
- 参数配置案列
- Mycat读写分离
- 基本命令
- 常见错误