love_php/app/Http/Controllers/Server/H5/EarningController.php
2026-04-02 09:20:51 +08:00

605 lines
29 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace App\Http\Controllers\Server\H5;
use App\Models\AccessRecord;
use App\Models\Server\SaasNotice;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\MEarning;
use App\Jobs\SendTemplateMsg;
use App\Models\Live\Anchor;
use App\Models\MEarningAccount;
use App\Models\MEarningTransfers;
use App\Models\MEarningwithdraws;
use App\Models\MerchantUsers;
use App\Models\TouristOrder;
use App\Models\User;
use App\Models\Message;
use App\Models\Server\MerchantAccount;
use App\Models\Server\MerchantShareChannel;
use App\Models\Server\MerchantTransferLog;
use App\Models\Server\MerchantUser;
use App\Utils\Messenger;
use App\Services\LiveAlipayService;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Redis;
class EarningController extends Controller
{
/**
* 我的收益记录
* @param Request $request
* @return JsonResponse|string
*/
public function MyEarnings(Request $request)
{
try {
$merchant_user_id = $request->merchant_user_id ?? 0;
$type = $request->type;
$result = MEarning::where('m_user_id', $merchant_user_id)->where('m_id', $request->merchant_id); //->where('value', '>', 0);
if ($type) {
$result = $result->where('type', $type);
} else {
$result = $result->where('type', '<>', 'enter');
}
$result = $result->orderBy('id', 'desc')->paginate();
foreach ($result as $key => $value) {
// $value->title = $value->order->desc ?? $value->order->goods;
$title = (!empty($value->order) && !empty($value->order->desc)) ? $value->order->desc:($value->order->goods??'未获取');
$time = Date('Y-m-d', $value->created_at->timestamp);
if ($value->sharer == 'first_sharer') {
$value->title = '你推荐注册的' . $value->nickname . '' . $time . ' 购买了【' . $title . '】';
} elseif ($value->sharer == 'last_sharer') {
$value->title = $value->nickname . '通过你的直接分享,' . $time . ' 购买了【' . $title . '】';
} elseif ($value->sharer == 'other_sharer') {
$value->title = $value->nickname . '通过你的间接分享,' . $time . ' 购买了【' . $title . '】';
}
if ($value->sharer == 'channel') {
$channel_id = $value->order->share_channel_id ?? 0;
$share_title = MerchantShareChannel::where('id', $channel_id)->value('title') ?? '渠道推广';
$value->title = $value->nickname . '通过你的渠道【' . $share_title . '】购买了【' . $title . '】';
}
if (isset($type) && $type = 'enter') {
$merchant = MerchantAccount::where('id', $value->m_order_id)->first();
$value->nickname = $merchant->anchorV2->name ?? '';
$value->title = '商户' . $value->nickname . '入驻,获取奖励' . $value->value . '元';
} else {
$account_id = $value->order->account_id ?? 0;
$pay_user = MerchantUsers::where('id', $account_id)->first();
$value->nickname = $pay_user->nickname ?? '匿名用户';
}
$value->order_price = $value->order->price ?? 0;
$value->pic = $pay_user->pic ?? User::DefaultAvatar;
unset($value->order);
}
return $this->success('ok', $result);
}catch (\Exception $e){
$this->getError($e);
return $this->failure('服务器休息中,请稍后再试');
}
}
public function communityEarnings(Request $request)
{
try {
$merchant_user_id = $request->merchant_user_id ?? 0;
$merchant_id = $request->merchant_id;
// $merchant_user_id = 55;
// $merchant_id = 1;
$type = $request->input('type');
$status = $request->input('status');
$users = \DB::table('merchant_users')->selectRaw('id as order_user_id,nickname,pic');
$orders = \DB::table('tourist_orders')->leftJoinSub($users, 'ufutx_users', function($join) {
$join->on('tourist_orders.account_id', '=', 'users.order_user_id');
})->where('pay_status', '<>', 0)->select(\DB::raw('ufutx_users.*'), 'id', 'desc', 'type_id','goods');
if ($type) {
$earnings = \DB::table('m_earnings')->where('m_id', $merchant_id)->where('m_user_id', $merchant_user_id)->where('type', 'enter')->whereNull('deleted_at')->leftJoinSub($orders, 'ufutx_orders', function($join) {
$join->on('m_order_id', '=', 'orders.id');
})->selectRaw('m_user_id,m_order_id, earning_time, sum(value) as value, created_at, 2 as status, ufutx_orders.*')->groupBy('m_order_id');
$value = \DB::table('m_earnings')->where('m_id', $merchant_id)->where('m_user_id', $merchant_user_id)->where('type', 'enter')->whereNull('deleted_at')->sum('value');
$earnings = $earnings->groupBy('m_order_id')->orderBy('created_at', 'desc')->paginate();
foreach ($earnings as $earning) {
$text = "商家入驻,获得奖励".$earning->value.'元';
$earning->text = $text;
}
}else {
$m_earnings = \DB::table('m_earnings')->where('m_id', $merchant_id)->where('m_user_id', $merchant_user_id)->where('type', '<>', 'enter')->whereNull('deleted_at')->leftJoinSub($orders, 'ufutx_orders', function($join) {
$join->on('m_order_id', '=', 'orders.id');
})->selectRaw('m_user_id,m_order_id,type, earning_time, sum(value) as value, created_at, 2 as status, ufutx_orders.*')->groupBy('m_order_id');
$earnings = \DB::table('m_advance_earnings')->where('m_id', $merchant_id)->where('m_user_id', $merchant_user_id)->whereNull('deleted_at')->union($m_earnings)->leftJoinSub($orders, 'ufutx_orders', function($join) {
$join->on('m_order_id', '=', 'orders.id');
})->selectRaw('m_user_id,m_order_id,type, earning_time, sum(value) as value, created_at, 1 as status, ufutx_orders.*');
$value1 = \DB::table('m_earnings')->where('m_id', $merchant_id)->where('m_user_id', $merchant_user_id)->where('type', '<>', 'enter')->whereNull('deleted_at')->sum('value');
$value2 = \DB::table('m_advance_earnings')->where('m_id', $merchant_id)->where('m_user_id', $merchant_user_id)->whereNull('deleted_at')->sum('value');
$value = $value1 + $value2;
$earnings = $earnings->groupBy('m_order_id')->orderBy('created_at', 'desc')->paginate();
foreach ($earnings as $earning) {
if($earning->type == 'transfer'){
$m_earning = MEarning::where('m_order_id',$earning->m_order_id)->first();
$transfer_m_id = MerchantTransferLog::where('m_earning_id',$m_earning->id)->value('m_id');
$transfer_merchant_name = Anchor::where('m_id',$transfer_m_id)->value('name');
$text = '商家'.$transfer_merchant_name.'在 '.$earning->created_at.',向你发起了一笔转账,金额:'.$earning->value.'元';
}else{
$goods_name = $earning->desc?:$earning->goods;
$text = $earning->nickname."通过你的分享,".$earning->created_at.'购买了【'.$goods_name.'】';
}
$earning->text = $text;
}
}
return $this->success('ok', compact('earnings', 'value'));
}catch (\Exception $e) {
$this->getError($e);
return $this->failure("服务器休息中,请稍后再试");
}
}
/**
* 收益信息
* *
* @param Request $request
* @return JsonResponse|string
*/
public function EarningsInfo(Request $request)
{
try {
$merchant_user_id = $request->merchant_user_id ?? 0;
$merchant_id = $request->merchant_id;
$wechatUser = session('wechat.oauth_user.new');
if ($wechatUser) {
$openid = $wechatUser->getId();
} else {
$openid = MerchantUsers::where('id', $merchant_user_id)->value('openid');
}
$data = [];
$data['total_price'] = 0;
$data['can_cash_out_price'] = 0;
$MEarning_account = MEarningAccount::where('m_id', $request->merchant_id)->where('m_user_id', $merchant_user_id)
->first();
if ($MEarning_account) {
$data['total_price'] = $MEarning_account->total_value;
$data['can_cash_out_price'] = $MEarning_account->balance;
}
$member = 0;
if ($openid){
// $member = TouristOrder::where('from_openid', $openid)->whereIn('pay_status', [1, 4])
// ->where('merchant_id', $request->merchant_id)
// ->where('pay_type', 'wechat')
// ->where('price', '>', 0)
// ->groupby('account_id')
// ->get()
// ->count();
$member = AccessRecord::where('recommender',$openid)
->where('account_id',$merchant_id)
->count();
}
// 商家推广人数
$merchant_member = MEarning::where('m_id', $merchant_id)->where('m_user_id', $merchant_user_id)
->where('type', 'enter')->groupBy('m_order_id')
->count();
$data['member'] = $member;
$data['merchant_member'] = $merchant_member;
$account = MEarningTransfers::where('m_user_id', $merchant_user_id)->first();
$data['account'] = $account->account ?? '';
$data['name'] = $account->name ?? '';
$jump_url = urlencode(env('APP_URL') . '/pu/#/information');
$url = env('APP_URL') . '/api/official/live/wechat/FamilyAuth?merchant_id=' . $merchant_id . '&url=' . $jump_url . '&from_openid=' . $openid;
$key = 'qr_code' . $merchant_id . 'Recommend' . $merchant_user_id;
$qr_code = Redis::get($key);
if (!$qr_code) {
$qr_code = $this->getPreviewQrcode($url);
Redis::setex($key, 60 * 60 * 24 * 30, $qr_code);
$qr_code = Redis::get($key);
}
$jump_url = urlencode(env('APP_URL') . '/pu/#/recruitingTeacher');
$enter_url = env('APP_URL') . '/api/official/live/wechat/FamilyAuth?merchant_id=' . $merchant_id . '&url=' . $jump_url . '&from_openid=' . $openid;
$key = 'qr_code' . $merchant_id . 'Teacher' . $merchant_user_id;
$enter_qr_code = Redis::get($key);
if (!$enter_qr_code) {
$enter_qr_code = $this->getPreviewQrcode($enter_url);
Redis::setex($key, 60 * 60 * 24 * 30, $enter_qr_code);
$enter_qr_code = Redis::get($key);
}
$data['url'] = $url;
$data['qr_code'] = $qr_code;
$data['enter_url'] = $enter_url;
$data['enter_qr_code'] = $enter_qr_code;
$data['poundage'] = Redis::get('withdrawal_poundage') ?? 2;
return $this->success('ok', $data);
}catch (\Exception $e){
$this->getError($e);
return $this->failure('服务器休息中,请稍后再试');
}
}
public function earningAccount(Request $request)
{
try {
// return $this->failure("系统维护中");
$merchant_user_id = $request->merchant_user_id ?? 0;
Log::info("earningAccount $merchant_user_id");
$merchant_id = $request->merchant_id;
//手续费比例百分比
$poundage = Redis::get('withdrawal_poundage') ?? 2;
//可提现金额
$earning_acount = MEarningAccount::where('m_id', $merchant_id)->where('m_user_id', $merchant_user_id)->first();
if (empty($earning_acount)) {
$earning_acount = MEarningAccount::firstOrCreate([
'm_id'=>$merchant_id,
'm_user_id'=>$merchant_user_id
]);
}
if ($earning_acount->is_banned) throw new \Exception("账号id: {$earning_acount->id}异常");
//冻结金额
$frezzing_value = \DB::table('m_advance_earnings')->where('m_id', $merchant_id)->where('m_user_id', $merchant_user_id)->whereNull('deleted_at')->sum('value');
if($earning_acount) {
//总收益
$total_value = number_format($earning_acount->total_value + $frezzing_value, 2, '.', '');
//已提现
$withdraw_value = $earning_acount->withdrawl;
//可提现
$balance_value = $earning_acount->balance;
} else {
//总收益
$total_value = $frezzing_value;
//已提现 //可提现
$withdraw_value = $balance_value = 0;
}
//当前提现账号
$account = MEarningTransfers::where('m_id', $merchant_id)->where('m_user_id', $merchant_user_id)->select('id','m_id','m_user_id', 'account', 'name','nick_name','pic','way','created_at','updated_at')->orderBy('updated_at','desc')->first();
return $this->success("ok", compact('poundage', 'balance_value','withdraw_value','total_value','account', 'frezzing_value'));
} catch (\Exception $e) {
$this->getError($e);
return $this->failure('服务器休息中,请稍后再试');
}
}
/**
* 提现记录
* @param Request $request
* @return JsonResponse|string
*/
public function MyWithdraws(Request $request)
{
try {
$merchant_id = $request->merchant_id ?? 0;
$merchant_user_id = $request->merchant_user_id ?? 0;
$result = MEarningwithdraws::whereIn('status', ['finished', 'freezing'])->where('m_id', $merchant_id)->where('m_user_id', $merchant_user_id)->paginate();
return $this->success('ok', $result);
}catch (\Exception $e){
$this->getError($e);
return $this->failure('服务器休息中,请稍后再试');
}
}
/**
* 提现信息
* @param Request $request
* @return JsonResponse|string
*/
public function WithdrawsInfo(Request $request)
{
try {
$result = MEarningAccount::where('m_user_id', $request->merchant_user_id)->first();
$user = MerchantUsers::where('id', $request->merchant_user_id)->first();
$result->nickname = $user->nickname;
$result->pic = $user->pic ?? User::DefaultAvatar;
return $this->success('ok', $result);
}catch (\Exception $e){
$this->getError($e);
return $this->failure('服务器休息中,请稍后再试');
}
}
/**
* 绑定支付账户
* @param Request $request
* @return JsonResponse|string
*/
public function BindEarningAccounts(Request $request)
{
try {
$merchant_id = $request->merchant_id;
$MEarningTransfers = MEarningTransfers::where('m_id', $merchant_id)->where('m_user_id', $request->merchant_user_id)->first();
if (!$MEarningTransfers) {
$MEarningTransfers = new MEarningTransfers();
$MEarningTransfers->way = $request->way;
$MEarningTransfers->m_id = $merchant_id;
$MEarningTransfers->m_user_id = $request->merchant_user_id;
$MEarningTransfers->account = $request->account;
$MEarningTransfers->name = $request->name;
$MEarningTransfers->save();
} else {
$MEarningTransfers->way = $request->way ?? $MEarningTransfers->way;
$MEarningTransfers->account = $request->account ?? $MEarningTransfers->account;
$MEarningTransfers->name = $request->name ?? $MEarningTransfers->name;
$MEarningTransfers->updated_at = date('Y-m-d H:i:s');
$MEarningTransfers->save();
}
return $this->success('ok', $MEarningTransfers);
}catch (\Exception $e){
$this->getError($e);
return $this->failure('服务器休息中,请稍后再试');
}
}
/**
* 提现
* *
* @param Request $request
* @return JsonResponse|string
*/
public function UserWithdrawal(Request $request)
{
try {
$merchant_id = $request->merchant_id;
$merchant_user_id = $request->merchant_user_id ?? 0;
$account = $request->account;
$way = $request->way;
$alipay_real_name = $request->name;
$amount = $request->amount;
$data = [];
// 查询用户的提现余额是否充足
$earning_accounts = MEarningAccount::where('m_user_id', $merchant_user_id)->where('m_id', $merchant_id)->first();
if (!$earning_accounts) return $this->failure('您暂无提现额度');
if ($amount < 0.1) return $this->failure('提现额度有误,请重新输入');
if ($earning_accounts->balance < $amount) return $this->failure('提现额度不足,请重新输入');
$poundage = Redis::get('withdrawal_poundage') ?? 2; //提现手续费百分比
$poundage = $amount * ($poundage / 100) >= 0.01 ? $amount * ($poundage / 100) : 0.01;//收取手续费费用 不足1分 按一分处理
$poundage = floor($poundage * 100) / 100;
$actual_received = $amount - $poundage;//实际到账金额
$trade_no = \CommonUtilsService::getTradeNO();
$data['payee_account'] = $account;//支付宝账号
$data['payee_real_name'] = $alipay_real_name;//支付宝绑定姓名
$data['remark'] = '提现已到账'; //提现备注
$data['out_biz_no'] = $trade_no;
$data['amount'] = $actual_received;
$ali = new LiveAlipayService();
$result = $ali->platTransferAccount($data);
if (is_array($result)) {
// 短信通知
$mobile = '15707534403';
$message = 'S端用户' . $alipay_real_name . ' 提现' . $amount . '元失败,原因:' . $result['msg'];
Message::create([
'phone' => $mobile,
'message' => $message,
'confirmed' => 1,
'ip' => request() ? request()->ip() : '127.0.0.1',
]);
Messenger::sendSMS($mobile, $message);
//模板通知 邓智锋
$data['touser'] = ['oPC_2vnSECnYp5p--uaq3rca3Ry0', 'oPC_2vpJd34uN2E1tTsFbf8Lhlcs'];
$data['template_id'] = 'AqwVt0liVmQfzfnX3ZGvmVOdOh62nkCbhlOUI0NVQGs';
$data['url'] = '';
$data['data'] = [
'first' => '',
'keyword1' => $amount . '元',
'keyword2' => '支付宝',
'keyword3' => $result['msg'],
'remark' => '点击查看提现记录',
];
$withdraw = MEarningwithdraws::create([
'm_id' => $merchant_id,
'm_user_id' => $merchant_user_id,
'way' => $way ?? 'alipay',
'value' => $amount,
'real_value' => $actual_received,
'account' => $account,
'name' => $alipay_real_name,
'trade_no' => $trade_no,
'status' => 'canceled',
'err_msg' => $result['msg']
]);
SendTemplateMsg::dispatch($data)->onQueue('template_message');
if ($result['msg'] == '余额不足,建议尽快充值。后续可登录电脑端支付宝,自主设置余额预警提醒功能。') {
$withdraw->status = 'freezing';
$withdraw->save();
return $this->success('ok', ['status' => 0]);
} else {
return $this->failure($result['msg'], ['status' => 2]);
}
} else {//提现成功
MEarningwithdraws::create([
'm_id' => $merchant_id,
'm_user_id' => $merchant_user_id,
'way' => $way ?? 'alipay',
'value' => $amount,
'real_value' => $actual_received,
'account' => $account,
'name' => $alipay_real_name,
'trade_no' => $trade_no,
'status' => 'finished',
]);
$earning_accounts->balance = $earning_accounts->balance - $amount;
$earning_accounts->withdrawl = $earning_accounts->withdrawl + $amount;
$earning_accounts->save();
}
return $this->success('ok', ['status' => 1]);
}catch (\Exception $e){
$this->getError($e);
return $this->failure('服务器休息中,请稍后再试');
}
}
/**
* 提交提现申请
* *
* @param Request $request
* @return JsonResponse|string
*/
public function withdrawApply(Request $request)
{
try {
// return $this->failure("系统维护中");
$merchant_id = $request->merchant_id;
$merchant_user_id = $request->merchant_user_id ?? 0;
$wechatUser = session('wechat.oauth_user.new');
if ($wechatUser) {
$openid = $wechatUser->getId();
} else {
$openid = MerchantUsers::where('id', $merchant_user_id)->value('openid');
}
$merchant_user = MerchantUser::where('id', $merchant_user_id)->first();
// if ($merchant_user->id != 221) return $this->failure("提现功能维护中,请稍后再试");
$account = $request->account;
$way = $request->way ?? 'alipay';
$alipay_real_name = $request->name;
//提现多少钱
$amount = $request->amount;
if (!is_numeric($amount) || $amount <= 0) return $this->failure('请输入正确的提现金额');
if ($amount < 1) return $this->failure('单笔提现最低金额为1元');
$earning_account = MEarningAccount::where('m_id', $merchant_id)->where('m_user_id', $merchant_user_id)->first();
if ($earning_account->is_banned) throw new \Exception("账号id: {$earning_account->id}异常");
//查询余额足够?
if ($earning_account->balance < $amount) return $this->failure('提现金额不能大于可以提现的总金额!');
$trade_no = \CommonUtilsService::getTradeNO();
$poundage = Redis::get('withdrawal_poundage') ?? 2; //提现手续费百分比
$poundage = $amount * ($poundage / 100) >= 0.01 ? $amount * ($poundage / 100) : 0.01;//收取手续费费用 不足1分 按一分处理
$poundage = floor($poundage * 100) / 100;
$actual_received = $amount - $poundage;//实际到账金额
//处理冻结金额
DB::beginTransaction();
$earning_account->balance = $earning_account->balance - $amount;
$earning_account->frozen_withdraw = $earning_account->frozen_withdraw + $amount;
$insert = ['m_id' => $merchant_id, 'm_user_id' => $merchant_user_id, 'way' => $way, 'real_value' => $actual_received, 'value' => $amount, 'trade_no' => $trade_no, 'account' => $account, 'name' => $alipay_real_name, 'status' => 'freezing'];
$earning_account->save();
$withdraw = MEarningwithdraws::create($insert);
if($amount >= 500) {
//通知
$data['touser'] = ['oPC_2vudVLVHj2U7dNinr2IEDHR4', 'oPC_2vuTj7YRgUzQQY7PlSJVLBBc'];
$data['template_id'] = 'OwXPF2dKEjPQUoGyzH944ATsJ6SgxpZ8kzB-KVVxanY';
$data['url'] = '';
$data['data'] = [
'first' => 's端用户:' . $alipay_real_name . '刚刚提交了提现申请,请即时处理',
'keyword1' => $amount . '元',
'keyword2' => '提现申请提交',
'keyword3' => '请求提交时间' . date('Y-m-d H:i'),
'keyword4' => '福恋后台审核',
'remark' => '提现申请提交',
];
SendTemplateMsg::dispatch($data)->onQueue('template_message');
$data['touser'] = $openid;
$data['template_id'] = 'OwXPF2dKEjPQUoGyzH944ATsJ6SgxpZ8kzB-KVVxanY';
$data['url'] = '';
$data['data'] = [
'first' => '你已申请提现,正在审核中',
'keyword1' => $alipay_real_name,
'keyword2' => date('Y-m-d H:i:s'),
'keyword3' => $actual_received . '元',
'keyword4' => '支付宝',
'remark' => '审核结果请留意服务通知',
];
SendTemplateMsg::dispatch($data)->onQueue('template_message');
//短信通知
$message = $alipay_real_name . ',你已申请提现,正在审核中,审核结果请留意手机短信,请耐心等待。';
$this->sentMessage($merchant_user->mobile, $message);
}else {
//直接转账
list($res, $error_msg) = $this->transferWithdraw($withdraw);
//失败
if (empty($res)) return $this->success('ok', $error_msg);
//修改账号状态
$earning_account->decrement('frozen_withdraw', $amount);
$earning_account->increment('withdrawl', $amount);
$withdraw->update(['status'=>'finished']);
//成功通知
$this->sendWithdrawNotice($earning_account, $withdraw);
}
DB::commit();
return $this->success('ok', ['status' => 1]);
} catch (\Exception $e) {
DB::rollBack();
$this->getError($e);
return $this->failure('服务器休息,请稍后再试');
}
}
public function sendWithdrawNotice($account, $withdraw)
{
$openid = MerchantUser::where('id', $account->m_user_id)->value('openid');
$way = '';
switch ($withdraw->way) {
case 'weixin':
$way = "微信";
break;
case "alipay":
$way = '支付宝';
break;
}
//模板通知
$data['touser'] = $openid;
$data['template_id'] = 'aV4ic7jr5bOlf55CgR0jmMsFYyhdRAiVmqqXEjnUqQU';
$data['url'] = '';
$data['data'] = [
'first' => '提现已到账,请在支付宝查收',
'keyword1' => $withdraw->real_value . '元',
'keyword2' => date('Y-m-d H:i:s'),
'keyword3' => $way.'提现成功',
'remark' => '感谢您的的使用',
];
SendTemplateMsg::dispatch($data)->onQueue('template_message');
}
/**
* 体现转账
* @param $withdraw
*/
public function transferWithdraw($withdraw)
{
$trade_no = $withdraw->trade_no;
$account = $withdraw->account;
$real_value = $withdraw->real_value;
$anchor_name = $withdraw->anchor?$withdraw->anchor->name:'';
$desc = "<$anchor_name>SAAS用户提现";
$res = true;
$error_msg = '';
switch ($withdraw->way) {
case 'alipay':
$ali = new LiveAlipayService();
$data['payee_account'] = $account;//支付宝账号
$data['payee_real_name'] = $withdraw->name;//支付宝绑定姓名
$data['remark'] = $desc; //提现备注
$data['out_biz_no'] = $trade_no;
$data['amount'] = $real_value;
$result = $ali->platTransferAccount($data);
if (is_array($result)) {
$res = false;
$error_msg = $result['msg'];
}
break;
case 'weixin':
$result = \WechatService::officialUserTransferV2($trade_no, $account, $real_value * 100, $desc);//成功返回result = null
if ($result) {
$res = false;
$error_msg = $result['err_code_des']??'';
}
break;
}
return [$res, $error_msg];
}
//授权码
public function wechatAuthQrcode(Request $request){
try {
$m_id = $request->merchant_id;
$m_user_id = $request->merchant_user_id;
$jump_url = urlencode(env('APP_URL').'/pu/#/IncomeWithdrawal');
$share_url = env('APP_URL') . '/api/official/live/wechat/FamilyAuth?merchant_id='.$m_id.'&url='.$jump_url.'&auth_state=0&account_id='.$m_user_id;
// $share_qrcode = $this->getPreviewQrcode($share_url);
return $this->success('ok',$share_url);
} catch (\Exception $e) {
$this->getError($e);
return $this->failure('服务器休息,请稍后再试');
}
}
}