Advertisement
Guest User

Untitled

a guest
Oct 19th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.78 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use Illuminate\Http\Request;
  6. use App\Orcamento;
  7. use App\OrcamentoProduto;
  8. use Paypalpayment;
  9. use PDF;
  10. use Illuminate\Support\Facades\DB;
  11. use Illuminate\Support\Facades\Request as req;
  12.  
  13. class PaymentController extends Controller
  14. {
  15.     public function invoice($orcamento_id)
  16.     {
  17.         $orcamento = DB::table('bxby_orcamento')->join('bxby_pendereco', 'bxby_orcamento.cod_endereco', '=', 'bxby_pendereco.seq_endereco')
  18.                        ->where('bxby_orcamento.sequencia', $orcamento_id)->get();
  19.        
  20.         $produtos_orcamento = DB::table('bxby_orcamento_produto')->where('codigo_orcamento', $orcamento_id)->get();
  21.         return view('usuario.invoices.invoice', ['orcamento' => $orcamento, 'produtos' => $produtos_orcamento]);
  22.     }
  23.  
  24.     public function pay($orcamento)
  25.     {
  26.         $orcamento = DB::table('bxby_orcamento')->where('sequencia', $orcamento)->get();
  27.  
  28.         $payer = Paypalpayment::payer();
  29.         $payer->setPaymentMethod('paypal');
  30.        
  31.         $item = Paypalpayment::item();
  32.         $item->setName('Entrega de produtos BOX4BUY')
  33.              ->setCurrency('USD')
  34.              ->setQuantity(1)
  35.              ->setPrice($orcamento[0]->vlr_final);
  36.              
  37.         $list = Paypalpayment::itemList();
  38.         $list->setItems([$item]);
  39.  
  40.         $amount = Paypalpayment::amount();
  41.         $amount->setTotal($orcamento[0]->vlr_final)
  42.                ->setCurrency('USD');
  43.  
  44.         $transaction = Paypalpayment::transaction();
  45.         $transaction->setamount($amount)
  46.                     ->setItemList($list)
  47.                     ->setDescription("PAGAMENTO DO ORÇAMENTO N° {$orcamento[0]->sequencia}");
  48.  
  49.         $redirect_urls = Paypalpayment::redirectUrls();
  50.         $redirect_urls->setReturnUrl(route('status'))
  51.                       ->setCancelUrl(route('status'));
  52.  
  53.         $payment = Paypalpayment::payment();
  54.         $payment->setIntent('sale')
  55.                 ->setPayer($payer)
  56.                 ->setTransactions([$transaction])
  57.                 ->setRedirectUrls($redirect_urls);
  58.  
  59.         try {
  60.             $payment->create(Paypalpayment::apiContext());
  61.  
  62.             session()->put('payment_id', $payment->getId());
  63.             session()->put('orcamento_id', $orcamento[0]->sequencia);
  64.  
  65.             return redirect($payment->getApprovalLink());
  66.         } catch (\PPConnectionException $ex) {
  67.             return response()->json(['error' => $ex->getMessage()], 400);
  68.         }
  69.     }
  70.  
  71.     public function getStatus()
  72.     {
  73.         $paymentid = session('payment_id');
  74.  
  75.         session()->forget('payment_id');
  76.  
  77.         if (empty(req::input('PayerID')) || empty(req::input('token'))) {
  78.             session()->put('error-request', 'Não foi possível concluir a transação no momento. Tente novamente mais tarde!');
  79.             return redirect(route('estoque'));
  80.         }
  81.  
  82.         $payment = Paypalpayment::getById($paymentid, Paypalpayment::apiContext());
  83.         $exec = Paypalpayment::paymentExecution();
  84.         $exec->setPayerId(req::input('PayerID'));
  85.  
  86.         $result = $payment->execute($exec, Paypalpayment::apiContext());
  87.  
  88.         if ($result->getState() == 'approved') {
  89.             DB::table('bxby_orcamento')->where('sequencia', session('orcamento_id'))->update(['status' => '6']);
  90.             $orcamento_id = session('orcamento_id');
  91.             $orcamento = DB::table('bxby_orcamento')->join('bxby_pendereco', 'bxby_orcamento.cod_endereco', '=', 'bxby_pendereco.seq_endereco')
  92.                 ->where('bxby_orcamento.sequencia', $orcamento_id)->get();
  93.             $produtos = DB::table('bxby_orcamento_produto')->where('codigo_orcamento', $orcamento_id)->get();
  94.  
  95.  
  96.             //$recibo = PDF::loadView('usuario.invoices.recibo', ['orcamento' => $orcamento, 'produtos' => $produtos]);
  97.             session()->put('success', 'Pagamento concluido com sucesso');
  98.             //session()->forget('orcamento_id');
  99.             // $paymentid = req::input('paymentId');
  100.             // $recibo->download("RECIBO-{$paymentid}.pdf");
  101.             return view('usuario.invoices.recibo', ['orcamento' => $orcamento, 'produtos' => $produtos]);
  102.         }
  103.  
  104.         session()->put('error', 'Não foi possível concluir a transação no momento. Tente novamente mais tarde!');
  105.         return redirect(route('estoque'));
  106.     }
  107.  
  108.     public function geraRecibo($orcamento_id)
  109.     {
  110.         $orcamento = DB::table('bxby_orcamento')->join('bxby_pendereco', 'bxby_orcamento.cod_endereco', '=', 'bxby_pendereco.seq_endereco')
  111.             ->where('bxby_orcamento.sequencia', $orcamento_id)->get();
  112.         $produtos = DB::table('bxby_orcamento_produto')->where('codigo_orcamento', $orcamento_id)->get();
  113.         return view('usuario.invoices.recibo', ['orcamento' => $orcamento, 'produtos' => $produtos]);
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement