<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Validator;
use URL;
use Session;
use Input;
use App\User;
use DB;
Use Mail;
//use Cartalyst\Stripe\Laravel\Facades\Stripe;
use Stripe\Error\Card;
use Cartalyst\Stripe\Stripe;
class testingcontroller extends Controller
{
//
public function card_view(){
return view('card_view');
}
public function create_payment_intent(Request $request){
$email="";
if($request->session()->get('user_id')==""){
$email=$request['guest_email'];
}
else{
$email=$request->session()->get('user_email');
}
$name=$request['name'];
//
\Stripe\Stripe::setApiKey('sk_test_51HmHWVJHMNVpHtGY25Pm24xb8x7h6rpMsk86G58VdqHCrCIpzbMMgxI3T1WIXdFzsRM9WJIbNyuZZQIokNaVPbmA00Qyd2XN1Q');
//
// $charge= \Stripe\PaymentIntent::create([
// 'amount' => 1099,
// 'currency' => 'eur',
// 'application_fee_amount' => 200,
// 'payment_method_types' => ['card'],
// ], ["stripe_account" => "acct_1HoBbTFf3sA3e1Z8"]);
$itemPriceCents = ($request['onlinepayment']*100);
$currency = 'gbp';
$fee=floor($itemPriceCents*(1.5)/100);
try {
$customer = \Stripe\Customer::create(array(
'email' => $email,
"description"=>'Proudlyafrican',
'name' => $name
), ["stripe_account" => "acct_1HoBbTFf3sA3e1Z8"]);
$c = $customer->jsonSerialize();
// Charge a credit or a debit card
$charge = \Stripe\PaymentIntent::create(array(
'payment_method_types' => ['card'],
"amount" => $itemPriceCents,
"customer"=>$c['id'],
"description"=>"Proudlyafrican",
"currency" => $currency,
"metadata"=>array("Owner"=>$name,"Owner email"=>$email),
"application_fee_amount" => floor($fee), // amount in cents
), ["stripe_account" => "acct_1HoBbTFf3sA3e1Z8"]);
// Retrieve charge details
$chargeJson = $charge->jsonSerialize();
return $chargeJson;
}catch(Exception $e) {
return $e->getMessage();
}
// return $charge;
}
public function order_success(Request $request){
$date=date("Y/m/d");
$type="";
if($request->session()->get('user_id')==""){
$type="guest";
}else{
$type="user";
}
$email="";
if($request->session()->get('user_id')==""){
$email=$request['guest_email'];
}
else{
$email=$request->session()->get('user_email');
}
$coupen_discount= $request['coupen_discount'];
$shipping_charge= $request['shipping_charge'];
$tax_percentage= $request['tax_percentage'];
$tax_amount= $request['tax_amount'];
$orders=DB::Table('orders')->OrderBy('order_id','DESC')->get();
$invoice_number="";
if(count($orders)>0){
$string=$orders[0]->invoice_number;
$stringParts = explode("CK", $string);
$invoice_number = $stringParts[1]+1; // 21
$invoice_number='CK00'.$invoice_number;
}
else{
$invoice_number='CK001';
}
$data=array(
'first_name'=>$request['first_name'],
'invoice_number'=>$invoice_number,
'last_name'=>$request['last_name'],
'email'=>$email,
'company'=>$request['company'],
'address1'=>$request['address1'],
'address2'=>$request['address2'],
'city'=>$request['city'],
'country_id'=>$request['country_id'],
'zip'=>$request['zip'],
'phone'=>$request['phone'],
'subtotal'=>$request['subtotal'],
'grandtotal'=>$request['grandtotal'],
'discount'=>$coupen_discount,
'coupen_user_id'=>$request['coupen_user_id'],
'user_id'=>$request->session()->get('user_id'),
'payment_intent_id'=>$request['payment_intent_id'],
'type'=>$type,
'shipping_charge'=>$shipping_charge,
'tax_percentage'=>$tax_percentage,
'tax_amount'=>$tax_amount,
);
$order_id= DB::Table('orders')->insertGetId($data);
session_start();
foreach($_SESSION['cart'] as $cart){
if(count($cart)>0){
foreach($cart as $subcart){
$unit=$subcart['unit'];
$quantity=$subcart['quantity'];
$secondquantity=$subcart['secondquantity'];
$product_id=$subcart['product_id'];
$amount=$subcart['amount'];
$data=array(
'product_id'=>$product_id,
'unit'=>$unit,
'secondquantity'=>$secondquantity,
'quantity'=>$quantity,
'order_id'=>$order_id,
'amount'=>$amount,
);
DB::Table('order_details')->insert($data);
}
}
}
$products=DB::Table('order_details')
->select('order_details.*','products.name as product_name')
->leftjoin('products','products.product_id','order_details.product_id')
->where('order_details.order_id',$order_id)
->get();
$bucket=DB::Table('bucket')->get();
if(count($bucket)>0){
$quantitycheck=$bucket[0]->qty;
if($quantitycheck==0){
}
else{
$baseurl=url('/');
$url=($baseurl.'/viewinvoice/'.$order_id);
// echo $url;
// exit();
$number="";
$numbers=DB::Table('notification_numbers')->get();
if(count($numbers)>0){
$number=$numbers[0]->number;
}
// $message='New Order have been placed in Royal Maroon Herbs. Kindly check your dashboard to view order or Click on the link '.$url;
$message='New Order Alert! A new order from '. $request['first_name'] . ' with contact no' . $request['phone'] . ' have placed a PAID order on your website. Click to view order '.$url;
// $message='The user ktkbilawal@gmail.com have place new order in Royal Maroon Herbs. Kindly check your dashboard to view order Or Click on the link';
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.sms.to/sms/send",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\n \"message\": \"$message\",\n \"to\": [\n \"$number\" ],\n \"sender_id\": \"CKGROCERIES\",\n \"callback_url\": \"https://example.com/callback/handler\"\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"Accept: application/json",
"Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2F1dGg6ODA4MC9hcGkvdjEvdXNlcnMvYXBpL2tleS9nZW5lcmF0ZSIsImlhdCI6MTY2MzI2MTE3MSwibmJmIjoxNjYzMjYxMTcxLCJqdGkiOiJ0UnBpTlNlelR5bmVMcUh6Iiwic3ViIjozODcxNywicHJ2IjoiMjNiZDVjODk0OWY2MDBhZGIzOWU3MDFjNDAwODcyZGI3YTU5NzZmNyJ9.AH29BZJGRP-KOjmspW_hqEqysMbc1fMyltrG_oa5MSU"
),
));
$response = curl_exec($curl);
curl_close($curl);
$bucket_data=array(
'qty'=>$quantitycheck-2,
'sent'=>$bucket[0]->sent+1
);
DB::Table('bucket')->where('id',2)->update($bucket_data);
$bucket_history_data=array(
'sms'=>$message,
'smsto'=>$number
);
DB::Table('bucket_history')->insert($bucket_history_data);
// echo "<pre>";
// print_r($response);
// exit();
}
}
$data2 = [
'invoice_number'=>$invoice_number,
'first_name'=>$request['first_name'],
'last_name'=>$request['last_name'],
'email'=>$email,
'company'=>$request['company'],
'address1'=>$request['address1'],
'address2'=>$request['address2'],
'city'=>$request['city'],
'country_id'=>$request['country_id'],
'zip'=>$request['zip'],
'phone'=>$request['phone'],
'subtotal'=>$request['subtotal'],
'grandtotal'=>$request['grandtotal'],
'discount'=>$coupen_discount,
'coupen_user_id'=>$request['coupen_user_id'],
'user_id'=>$request->session()->get('user_id'),
'type'=>$type,
'shipping_charge'=>$shipping_charge,
'tax_percentage'=>$tax_percentage,
'tax_amount'=>$tax_amount,
'products'=>$products
];
Mail::send('general.test5', $data2, function($message) use ($data2)
{
$message->from('ktkbilawal@gmail.com');
$message->to($data2['email']);
$message->subject('Invoice Detail');
});
unset($_SESSION['cart']);
// Session::flash('order_msg', $order_id);
// return redirect('view_cart');
//
return redirect()->to('order_place_page/'.$order_id);
}
public function order_refund_form(Request $request){
$arr=array();
if($_POST)
{
$order_id=$request['order_id'];
$amount=$request['amount'];
$order=DB::Table('orders')->where('order_id',$order_id)->get();
if($amount <= $order[0]->grandtotal)
{
try {
\Stripe\Stripe::setApiKey('sk_test_51HmHWVJHMNVpHtGY25Pm24xb8x7h6rpMsk86G58VdqHCrCIpzbMMgxI3T1WIXdFzsRM9WJIbNyuZZQIokNaVPbmA00Qyd2XN1Q');
$refund = \Stripe\Refund::create(array(
'payment_intent' => $order[0]->payment_intent_id,
'amount' =>floor($amount*100),
'refund_application_fee' => false
), ["stripe_account" => "acct_1HoBbTFf3sA3e1Z8"]);
// Charge a credit or a debit card
// Retrieve charge details
$refund = $refund->jsonSerialize();
if($refund['status']=="succeeded")
{
$data=array(
'grandtotal'=>$order[0]->grandtotal-$amount,
'refunded_amount'=>$order[0]->refunded_amount+$amount,
);
DB::Table('orders')->where('order_id',$order_id)->update($data);
$data2=array(
'order_id'=>$order_id,
'amount'=>$amount
);
DB::Table('refunds')->insert($data2);
$arr['refund_status']=true;
$order=DB::Table('orders')->where('order_id',$order_id)->get();
$arr['refunded_amount']=number_format($order[0]->refunded_amount,2);
$arr['net_amount']=number_format($order[0]->grandtotal,2);
$arr['revised_amount']=number_format($order[0]->grandtotal-$order[0]->refunded_amount,2);
}
}catch(Exception $e) {
$this->api_error = $e->getMessage();
return false;
}
}
else
{
$arr['status']=false;
}
}
else
{
$arr['status']=false;
}
echo json_encode($arr);exit;
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]