文件路徑:
shop\controllers\Api\Trade\ReturnCtl.php
方法:
agree()
參數:
order_return_id:退單id
return_platform_message:處理備注
# 1.判斷商家是否同意此退單,如果不同意則只修改訂單狀態,不修改商家金額。如果商家同意,則修改訂單狀態并修改商家金額。
if($return['return_state'] == Order_ReturnModel::RETURN_SELLER_UNPASS)
{
//不同意
$data['return_platform_message'] = $return_platform_message;
$data['return_state'] = Order_ReturnModel::RETURN_PLAT_PASS;
$data['return_finish_time'] = get_date_time();
$rs_row = array();
$this->Order_ReturnModel->sql->startTransactionDb();
$edit_flag = $this->Order_ReturnModel->editReturn($order_return_id, $data);
check_rs($edit_flag, $rs_row);
if ($return['return_goods_return'])
{
//商品退換情況為完成2
$goods_data['goods_refund_status'] = Order_GoodsModel::REFUND_COM;
$edit_flag = $this->Order_GoodsModel->editGoods($return['order_goods_id'], $goods_data);
check_rs($edit_flag, $rs_row);
}
else
{
$goods_data['goods_return_status'] = Order_GoodsModel::REFUND_COM;
$edit_flag = $this->Order_GoodsModel->editGoods($return['order_goods_id'], $goods_data);
check_rs($edit_flag, $rs_row);
}
}
# 2.商家同意退款的情況
(1)修改退單的狀態
$data['return_platform_message'] = $return_platform_message;
$data['return_state'] = Order_ReturnModel::RETURN_PLAT_PASS;
$data['return_finish_time'] = get_date_time();
$rs_row = array();
$this->Order_ReturnModel->sql->startTransactionDb();
$edit_flag = $this->Order_ReturnModel->editReturn($order_return_id, $data);
(2)根據退款/退貨情況,修改訂單商品的狀態
if ($return['return_goods_return'])
{
//商品退換情況為完成2
$goods_data['goods_refund_status'] = Order_GoodsModel::REFUND_COM;
$edit_flag = $this->Order_GoodsModel->editGoods($return['order_goods_id'], $goods_data);
check_rs($edit_flag, $rs_row);
}
else
{
$goods_data['goods_return_status'] = Order_GoodsModel::REFUND_COM;
$edit_flag = $this->Order_GoodsModel->editGoods($return['order_goods_id'], $goods_data);
check_rs($edit_flag, $rs_row);
}
(3)將退款金額,退還傭金,退還紅包,退貨數量等寫入訂單表
$order_edit['order_refund_amount'] = $return['return_cash'];
$order_edit['order_return_num'] = $return['order_goods_num'];
$order_edit['order_commission_return_fee'] = $return['return_commision_fee'];
$order_edit['order_rpt_return'] = $return['return_rpt_cash'];
$edit_flag = $this->Order_BaseModel->editBase($return['order_number'], $order_edit,true);
(4)如果此訂單為退款訂單,并且將所有商品退還,則就訂單狀態修改為完成狀態
if($order_all_goods_num == $order_return_num && $order_base['order_status'] !== $Order_StateModel::ORDER_FINISH)
{
$order_edit_row = array();
$order_edit_row['order_status'] = $Order_StateModel::ORDER_FINISH;
$edit_flag2 = $this->Order_BaseModel->editBase($return['order_number'], $order_edit_row);
check_rs($edit_flag2, $rs_row);
}
(5)在paycenter中增加退款流水
判斷該筆訂單是否是主賬號支付,如果是主賬號支付,則將退款金額退還主賬號
if($order_base['order_sub_pay'] == Order_StateModel::SUB_SELF_PAY)
{
$return_user_id = $return['buyer_user_id'];
$return_user_name = $return['buyer_user_account'];
}
if($order_base['order_sub_pay'] == Order_StateModel::SUB_USER_PAY)
{
//查找主管賬戶用戶名
$User_BaseModel = new User_BaseModel();
$sub_user_base = $User_BaseModel->getOne($order_base['order_sub_user']);
$return_user_id = $order_base['order_sub_user'];
$return_user_name = $sub_user_base['user_account'];
}
$key = Yf_Registry::get('shop_api_key');
$url = Yf_Registry::get('paycenter_api_url');
$shop_app_id = Yf_Registry::get('shop_app_id');
$formvars = array();
$formvars['app_id'] = $shop_app_id;
$formvars['user_id'] = $return_user_id;
$formvars['user_account'] = $return_user_name;
$formvars['seller_id'] = $return['seller_user_id'];
$formvars['seller_account'] = $return['seller_user_account'];
$formvars['amount'] = $return['return_cash'];
$formvars['return_commision_fee'] = $return['return_commision_fee'];
$formvars['order_id'] = $return['order_number'];
$formvars['goods_id'] = $return['order_goods_id'];
$formvars['uorder_id'] = $order_base['payment_other_number'];
$formvars['payment_id'] = $order_base['payment_id'];
//平臺同意退款(只增加買家的流水)
$rs = get_url_with_encrypt($key, sprintf('%s?ctl=Api_Pay_Pay&met=refundBuyerTransfer&typ=json', $url), $formvars);
(6)如果訂單金額全數退還需要將訂單商品,支付中心的訂單狀態修改為訂單完成(未發貨)
if($order_all_goods_num == $order_return_num && $order_base['order_status'] == Order_StateModel::ORDER_PAYED)
{
$goods_data['order_goods_status'] = $Order_StateModel::ORDER_FINISH;
$order_goods_ids = $this->Order_GoodsModel->getByWhere(array('order_id'=>$return['order_number']));
$ed_flag = $this->Order_GoodsModel->editGoods($order_goods_ids, $goods_data);
check_rs($ed_flag, $rs_row);
//將需要確認的訂單號遠程發送給Paycenter修改訂單狀態
//遠程修改paycenter中的訂單狀態
$key = Yf_Registry::get('shop_api_key');
$url = Yf_Registry::get('paycenter_api_url');
$shop_app_id = Yf_Registry::get('shop_app_id');
$formvars = array();
$formvars['order_id'] = $return['order_number'];
$formvars['app_id'] = $shop_app_id;
$formvars['from_app_id'] = Yf_Registry::get('shop_app_id');
$rs = get_url_with_encrypt($key, sprintf('%s?ctl=Api_Pay_Pay&met=confirmOrder&typ=json', $url), $formvars);
if($rs['status'] == 250)
{
$rs_flag = false;
check_rs($rs_flag,$rs_row);
}
}
- IM api調試接口
- 群主踢人
- 群成員退群
- 用戶創建群
- 群主修改群信息
- 群主轉換
- 群成員拉好友入群
- 翻譯
- 客戶端獲取手機驗證碼
- SHOP
- 團隊限購
- 常用
- 銀聯支付
- 多語言
- API配置都對,但接口還是報錯,解決方法
- 商品評分
- 圖片延時加載
- 買家申請“退款/退貨”
- 商家處理“退款/退貨”申請
- 平臺“退款/退貨”審核
- 添加發票
- 提交訂單
- 確認訂單
- 運費和售賣區域查詢
- 購物車商品刪除
- 領取代金券
- APP打包H5通用功能
- 首頁掃一掃
- 分享事件監聽
- 支付事件監聽
- SHOP_ADMIN
- 導出xls
- 彈出窗口
- 計劃任務
- SOHP_WAP
- 首頁聊天消息
- Ucenter
- 彈出窗口
- 微博登錄
- 獲取會員地址
- 商城配置數據庫權限
- 商城后臺供應商SQL
- 去分銷
- paycenter_ucenter_shop通信說明
- AES
- 紅包
- goods_common
- 紅包退回
- 微信小程序
- 手機驗證碼API
- APP充值
- 攝像頭cronjob
- WEBPOS自動加載權限
- 商城子帳號
- 云版升級注意事項
- 集群服務