1
0
Files
lkafu/app/Http/Controllers/UpgradeController.php
2020-08-06 14:45:56 +08:00

107 lines
2.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\UpgradePayment;
use App\User;
use Auth;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\View;
use RuLong\Order\Models\Order;
/**
* 用户升级
*/
class UpgradeController extends Controller
{
public function __construct(Request $request)
{
$this->middleware('auth');
View::share('nav', 4);
}
// 升级vip
public function vip(Request $request)
{
if (Auth::user()->identity->identity_id > 0) {
// return redirect()->route('user.index');
}
return view('upgrade.vip');
}
//升级代理商
public function agent(Request $request)
{
if (!Auth::user()->username) {
return redirect()->route('login');
}
if (Auth::user()->identity->identity_id > 1) {
return redirect()->route('Agent.login');
}
return view('upgrade.agent');
}
public function wechat(Request $request)
{
$user = Auth::user();
$type = $request->type ?? 'vip';
$upgradeOrder = UpgradePayment::where(['user_id' => $user->id, 'type' => $type, 'state' => 'SUCCESS'])->first();
if ($upgradeOrder) {
$url = route('user.index');
if ($type == 'agent') {
$url = route('Agent.login');
}
return $this->error('您已经升级成功', $url);
}
$upgradeOrder = $this->getpayOrder($type);
$app = app('wechat.payment');
$amount = $upgradeOrder->amount;
if (config('pick.DEBUG')) {
$amount = 0.01;
}
$result = $app->order->unify([
'body' => $type == 'vip' ? '开通会员' : '开通代理商',
'out_trade_no' => $upgradeOrder->trade_no,
'total_fee' => $amount * 100,
'notify_url' => route('notify.upgrade'),
'trade_type' => 'JSAPI',
'openid' => $user->openid,
]);
if ($result['return_code'] == 'SUCCESS' && isset($result['prepay_id'])) {
$json = $app->jssdk->bridgeConfig($result['prepay_id']);
return $this->success($json);
} else {
return $this->error($result['return_msg'] . ($result['err_code_des'] ?? ''));
}
}
private function getpayOrder($type)
{
$amount = 399;
if ($type == 'vip') {
$amount = config('vip_price');
}
if ($type == 'agent') {
$amount = config('agent_price');
}
$upgradeOrder = UpgradePayment::create([
'user_id' => Auth::id(),
'type' => $type,
'pay_type' => 'WECHAT',
'amount' => $amount,
'total' => $amount,
]);
return $upgradeOrder;
}
public function hasAgent()
{
return view('upgrade.hasagent');
}
}