提交代码
This commit is contained in:
106
app/Http/Controllers/UpgradeController.php
Normal file
106
app/Http/Controllers/UpgradeController.php
Normal file
@@ -0,0 +1,106 @@
|
||||
<?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');
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user