<noframes id="bhrfl"><address id="bhrfl"></address>

    <address id="bhrfl"></address>

    <noframes id="bhrfl"><address id="bhrfl"><th id="bhrfl"></th></address>

    <form id="bhrfl"><th id="bhrfl"><progress id="bhrfl"></progress></th></form>

    <em id="bhrfl"><span id="bhrfl"></span></em>

    全部
    常見問題
    產品動態
    精選推薦

    后臺會員訂單支付寶退款問題修復

    管理 管理 編輯 刪除

    修復:

    284e8202311221054324483.png

        public function updateRefundY(Request $request, $id)
        {
            $data = parent::postMore([
                'refund_price',
                ['type', 1],
            ], $request);
            if (!$id) return $this->failed('數據不存在');
            $product = StoreOrderModel::get($id);
            if (!$product) return Json::fail('數據不存在!');
            if ($product['pay_price'] == $product['refund_price']) return Json::fail('已退完支付金額!不能再退款了');
            if (!$data['refund_price']) return Json::fail('請輸入退款金額');
            $refund_price = $data['refund_price'];
            $data['refund_price'] = bcadd($data['refund_price'], $product['refund_price'], 2);
            $bj = bccomp((float)$product['pay_price'], (float)$data['refund_price'], 2);
            if ($bj < 0) return Json::fail('退款金額大于支付金額,請修改退款金額');
            if ($data['type'] == 1) {
                $data['refund_status'] = 2;
            } else if ($data['type'] == 2) {
                $data['refund_status'] = 0;
            }
            $type = $data['type'];
            unset($data['type']);
            $refund_data['pay_price'] = $product['pay_price'];
            $refund_data['refund_price'] = $refund_price;
            if ($product['pay_type'] == 'weixin') {
                try {
                    if ($refund_data['refund_price'] > 0) {
                        $refund_data['refund_id'] = $product['order_id'] . rand(100, 999);
                    }
                    $no = $product['order_id'];
                    if ($product['trade_no']) {
                        $no = $product['trade_no'];
                        $refund_data['type'] = 'trade_no';
                    }
                    HookService::listen('wechat_pay_order_refund', $no, $refund_data, true, PaymentBehavior::class);
                } catch (\Exception $e) {
                    return Json::fail($e->getMessage());
                }
            } else if ($product['pay_type'] == 'yue') {
                ModelBasic::beginTrans();
                $res = User::bcInc($product['uid'], 'now_money', $refund_price, 'uid');
                ModelBasic::checkTrans($res);
                if (!$res) return Json::fail('余額退款失敗!');
            } else if ($product['pay_type'] == 'zhifubao') {
                if ($product['type'] == 0 && $product['combination_id'] > 0) {
                    $mask = '拼團失敗退款';
                } elseif ($product['type'] == 0 && $product['combination_id'] == 0) {
                    $mask = '專題退款';
                } elseif ($product['type'] == 2) {
                    $mask = '商品退款';
                } elseif ($product['type'] == 1) {
                    $mask = '會員退款';
                }
                $res = AlipayTradeWapService::init()->AliPayRefund($product['order_id'], $product['trade_no'], $refund_price, $mask, 'refund');
                if (empty($res) || $res != 10000) {
                    return Json::fail('支付寶退款失敗!');
                }
            }
            $data['refund_reason_time'] = time();
            $resEdit = StoreOrderModel::edit($data, $id);
            if ($resEdit) {
                $data['type'] = $type;
                if ($data['type'] == 1 && $product['type'] == 0) {
                    StorePink::setRefundPink($id);
                    SpecialBuy::where('order_id', $product['order_id'])->delete();
                }
                if ($product['type'] == 1) {
                    $merber = MemberShip::where('id', $product['member_id'])->find();
                    if ($merber['is_permanent']) {
                        User::where('uid', $product['uid'])->update(['is_permanent' => 0]);
                    } else {
                        $time = bcmul($merber['vip_day'], 86400, 0);
                        User::where('uid', $product['uid'])->setDec('overdue_time', $time);
                    }
                }
                if ($product['type'] == 0 && $product['combination_id'] > 0) {
                    $title = '專題拼團退款';
                    MerchantFlowingWater::orderRefund($id, $product['mer_id'], 0);
                } elseif ($product['type'] == 0 && $product['combination_id'] == 0) {
                    $title = '專題退款';
                    MerchantFlowingWater::orderRefund($id, $product['mer_id'], 0);
                } elseif ($product['type'] == 1) {
                    $title = '會員退款';
                } elseif ($product['type'] == 2) {
                    $title = '商品退款';
                    MerchantFlowingWater::orderRefund($id, $product['mer_id'], 2);
                }
                $pay_type = $product['pay_type'] == 'yue' ? 'now_money' : $product['pay_type'];
                if ($product['pay_type'] == 'yue') {
                    $balance = User::where(['uid' => $product['uid']])->value('now_money');
                } else {
                    $balance = 0;
                }
                UserBill::income($title, $product['uid'], $pay_type, 'pay_product_refund', $refund_price, $product['id'], $balance, '訂單退款' . floatval($refund_price) . '元');
                HookService::afterListen('store_product_order_refund_y', $data, $id, false, StoreProductBehavior::class);
                StoreOrderStatus::setStatus($id, 'refund_price', '退款給用戶' . $refund_price . '元');
                return Json::successful('退款成功!');
            } else {
                StoreOrderStatus::setStatus($id, 'refund_price', '退款給用戶' . $refund_price . '元失敗');
                return Json::successful('退款失敗!');
            }
        }


    知識付費v2.1.6版本可以直接覆蓋

    附件

    application.zip

    請登錄后查看

    全 最后編輯于2023-11-27 17:55:33

    快捷回復
    回復
    回復
    回復({{post_count}}) {{!is_user ? '我的回復' :'全部回復'}}
    排序 默認正序 回復倒序 點贊倒序

    {{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

    作者 管理員 企業

    {{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
    {{item.is_suggest == 1? '取消推薦': '推薦'}}
    沙發 板凳 地板 {{item.floor}}#
    {{item.user_info.title || '暫無簡介'}}
    附件

    {{itemf.name}}

    {{item.created_at}}  {{item.ip_address}}
    打賞
    已打賞¥{{item.reward_price}}
    {{item.like_count}}
    {{item.showReply ? '取消回復' : '回復'}}
    刪除
    回復
    回復

    {{itemc.user_info.nickname}}

    {{itemc.user_name}}

    回復 {{itemc.comment_user_info.nickname}}

    附件

    {{itemf.name}}

    {{itemc.created_at}}
    打賞
    已打賞¥{{itemc.reward_price}}
    {{itemc.like_count}}
    {{itemc.showReply ? '取消回復' : '回復'}}
    刪除
    回復
    回復
    查看更多
    打賞
    已打賞¥{{reward_price}}
    2901
    {{like_count}}
    {{collect_count}}
    添加回復 ({{post_count}})

    相關推薦

    快速安全登錄

    使用微信掃碼登錄
    {{item.label}} 加精
    {{item.label}} {{item.label}} 板塊推薦 常見問題 產品動態 精選推薦 首頁頭條 首頁動態 首頁推薦
    取 消 確 定
    回復
    回復
    問題:
    問題自動獲取的帖子內容,不準確時需要手動修改. [獲取答案]
    答案:
    提交
    bug 需求 取 消 確 定
    打賞金額
    當前余額:¥{{rewardUserInfo.reward_price}}
    {{item.price}}元
    請輸入 0.1-{{reward_max_price}} 范圍內的數值
    打賞成功
    ¥{{price}}
    完成 確認打賞

    微信登錄/注冊

    切換手機號登錄

    {{ bind_phone ? '綁定手機' : '手機登錄'}}

    {{codeText}}
    切換微信登錄/注冊
    暫不綁定
    亚洲欧美字幕
    CRMEB客服

    CRMEB咨詢熱線 咨詢熱線

    400-8888-794

    微信掃碼咨詢

    CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
    返回頂部 返回頂部
    CRMEB客服