JFIF x x C C " } !1AQa "q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w !1AQ aq"2B #3Rbr{
File "StripePay.php"
Full Path: /home2/yvrgircc/public_html/ariseskilltech.com/app/Models/payment_gateway/StripePay.php
File size: 4.06 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace App\Models\payment_gateway;
use App\Http\Requests;
use DB;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
//for stripe
use Session;
use Stripe;
class StripePay extends Model
{
use HasFactory;
public static function payment_status($identifier, $transaction_keys = [])
{
$payment_gateway = DB::table('payment_gateways')->where('identifier', $identifier)->first();
$keys = json_decode($payment_gateway->keys, true);
if ($payment_gateway->test_mode == 1) :
$stripeSecretKey = $keys['secret_key'];
else :
$stripeSecretKey = $keys['secret_live_key'];
endif;
// Check whether stripe checkout session is not empty
$session_id = $transaction_keys['session_id'];
if ($session_id != "") {
// Set API key
\Stripe\Stripe::setApiKey($stripeSecretKey);
// Fetch the Checkout Session to display the JSON result on the success page
try {
$checkout_session = \Stripe\Checkout\Session::retrieve($session_id);
} catch (Exception $e) {
$api_error = $e->getMessage();
}
if (empty($api_error) && $checkout_session) {
// Retrieve the details of a PaymentIntent
try {
$intent = \Stripe\PaymentIntent::retrieve($checkout_session->payment_intent);
} catch (\Stripe\Exception\ApiErrorException $e) {
$api_error = $e->getMessage();
}
if ($intent) {
// Check whether the charge is successful
if ($intent->status == 'succeeded') {
Session::put(['session_id' => $transaction_keys['session_id']]);
return true;
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
return false;
}
public static function payment_create($identifier)
{
$payment_gateway = DB::table('payment_gateways')->where('identifier', $identifier)->first();
$payment_details = session('payment_details');
$keys = json_decode($payment_gateway->keys, true);
$products_name = '';
foreach ($payment_details['items'] as $key => $value) :
if ($key == 0) {
$products_name .= $value['title'];
} else {
$products_name .= ', ' . $value['title'];
}
endforeach;
if ($payment_gateway->test_mode == 1) :
$stripeSecretKey = $keys['secret_key'];
else :
$stripeSecretKey = $keys['secret_live_key'];
endif;
\Stripe\Stripe::setApiKey($stripeSecretKey);
header('Content-Type: application/json');
$YOUR_DOMAIN = 'http://localhost:4242';
$checkout_session = \Stripe\Checkout\Session::create([
'line_items' => [
[
'price_data' => [
'product_data' => [
'name' => get_phrase('Purchasing') . ' ' . $products_name,
],
'unit_amount' => round($payment_details['payable_amount'] * 100, 2),
'currency' => $payment_gateway->currency,
],
'quantity' => 1,
],
],
'mode' => 'payment', //Checkout has three modes: payment, subscription, or setup. Use payment mode for one-time purchases. Learn more about subscription and setup modes in the docs.
'success_url' => $payment_details['success_url'] . '/' . $identifier . '?session_id={CHECKOUT_SESSION_ID}',
'cancel_url' => $payment_details['cancel_url'],
]);
return $checkout_session->url;
}
}