OrderController.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Http\Controllers\Guest;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Controller;
  5. use App\Models\Order;
  6. use Illuminate\Support\Facades\Log;
  7. class OrderController extends Controller
  8. {
  9. public function stripeNotify (Request $request) {
  10. Log::info('stripeNotifyData: ' . json_encode($request->input()));
  11. \Stripe\Stripe::setApiKey(config('v2board.stripe_sk_live'));
  12. try {
  13. $event = \Stripe\Webhook::constructEvent(
  14. file_get_contents('php://input'),
  15. $_SERVER['HTTP_STRIPE_SIGNATURE'],
  16. config('v2board.stripe_webhook_key')
  17. );
  18. } catch (\Stripe\Error\SignatureVerification $e) {
  19. abort(400);
  20. }
  21. $obj = $event->data->object;
  22. if ($obj['status'] == 'succeeded') {
  23. $order = Order::where('callback_no', $obj['source']['id'])->first();
  24. if (!$order) {
  25. abort(500, 'ERROR');
  26. }
  27. if ($order->status !== 0) {
  28. die('SUCCESS');
  29. }
  30. $order->status = 1;
  31. if (!$order->save()) {
  32. abort(500, 'ERROR');
  33. }
  34. die('SUCCESS');
  35. }
  36. }
  37. public function stripeReturn (Request $request) {
  38. Log::info('stripeReturnData: ' . json_encode($request->input()));
  39. header('Location:' . '/#/dashboard');
  40. }
  41. }