/** * Store new donative. * * @param DonativoStoreRequest $request * * @return response */ public function store(DonativoStoreRequest $request) { $input = $request->all(); $paypal = new PaypalRequestService(uniqid()); if (count($input['doacoes']) > 1) { foreach ($input['doacoes'] as $key => $doacao) { $paypal->setItem('1', 'Doação voluntária: ' . ($key + 1), 'Não há produto para ser entregue, isso é apenas uma doação, esteja ciente disso.', $doacao['value']); } } else { foreach ($input['doacoes'] as $doacao) { $paypal->setItem('1', 'Doação voluntária', 'Não há produto para ser entregue, isso é apenas uma doação, esteja ciente disso.', $doacao['value']); } } return $paypal->getCheckoutUrl(); }
public function ipn(PaypalRequestService $paypal, Request $request) { $input = $request->all(); // dd($input); $data['data'] = json_encode($input); try { $r = Mail::send('emails.ipn', $data, function ($message) { $message->replyTo('*****@*****.**')->to(env('MAIL_TO'))->subject('Conctact: Paypal IPN!'); }); } catch (Exception $e) { } if (!$paypal->isIPNValid($input)) { return response()->json('Algo errado', 403); } //Está tudo correto, somos o destinatário da notificação, vamos //gravar um log dessa notificação. $ipn = new $this->ipn(); $ipn->fill($input); try { $ipn->save(); } catch (Exception $e) { } //Log gravado, podemos seguir com as regras de negócio para //essa notificação. //gravamos dados do cliente $customer = new $this->customer(); $customer->fill($input); try { if (!isset($input['email']) && isset($input['payer_email'])) { $input['email'] = $input['payer_email']; } $customer->save(); } catch (Exception $e) { } //gravamos dados da transação $transaction = new $this->transaction(); $transaction->fill($input); try { $transaction->save(); } catch (Exception $e) { } return response()->json('Log travado'); }