文件路徑:
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;
}
}
- IM api調試接口
- 群主踢人
- 群成員退群
- 用戶創建群
- 群主修改群信息
- 群主轉換
- 群成員拉好友入群
- 翻譯
- 客戶端獲取手機驗證碼
- SHOP
- 團隊限購
- 常用
- 銀聯支付
- 多語言
- API配置都對,但接口還是報錯,解決方法
- 商品評分
- 圖片延時加載
- 買家申請“退款/退貨”
- 商家處理“退款/退貨”申請
- 平臺“退款/退貨”審核
- 添加發票
- 提交訂單
- 確認訂單
- 運費和售賣區域查詢
- 購物車商品刪除
- 領取代金券
- APP打包H5通用功能
- 首頁掃一掃
- 分享事件監聽
- 支付事件監聽
- SHOP_ADMIN
- 導出xls
- 彈出窗口
- 計劃任務
- SOHP_WAP
- 首頁聊天消息
- Ucenter
- 彈出窗口
- 微博登錄
- 獲取會員地址
- 商城配置數據庫權限
- 商城后臺供應商SQL
- 去分銷
- paycenter_ucenter_shop通信說明
- AES
- 紅包
- goods_common
- 紅包退回
- 微信小程序
- 手機驗證碼API
- APP充值
- 攝像頭cronjob
- WEBPOS自動加載權限
- 商城子帳號
- 云版升級注意事項
- 集群服務