全部
常见问题
产品动态
精选推荐

后台会员订单支付宝退款问题修复

管理 管理 编辑 删除

修复:

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}}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest==1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

作者 管理员 企业

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}   {{itemc.ip_address}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
回复
回复
1927
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} {{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
加精
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服