From 437be0e30fc84db38652b43e7fd86e2f7b8c5c47 Mon Sep 17 00:00:00 2001 From: Jacob Catayoc Date: Thu, 8 Sep 2016 05:48:07 +0800 Subject: [PATCH] - Add MIGS payment gateway - Modified logic to support payment gateways that redirect using GET --- .../Controllers/EventCheckoutController.php | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/EventCheckoutController.php b/app/Http/Controllers/EventCheckoutController.php index 07fcde7a..27a158ad 100644 --- a/app/Http/Controllers/EventCheckoutController.php +++ b/app/Http/Controllers/EventCheckoutController.php @@ -324,19 +324,11 @@ class EventCheckoutController extends Controller 'testMode' => config('attendize.enable_test_payments'), ]); - $transaction_data = []; - switch ($ticket_order['payment_gateway']->id) { - case config('attendize.payment_gateway_migs'): - - $transaction_data = [ - 'transactionId' => 1, - ]; - - case config('attendize.payment_gateway_paypal'): + case config('attendize.payment_gateway_paypal'): case config('attendize.payment_gateway_coinbase'): - $transaction_data += [ + $transaction_data = [ 'cancelUrl' => route('showEventCheckoutPaymentReturn', [ 'event_id' => $event_id, 'is_payment_cancelled' => 1 @@ -356,6 +348,17 @@ class EventCheckoutController extends Controller 'token' => $token, ]; break; + case config('attendize.payment_gateway_migs'): + + $transaction_data = [ + 'transactionId' => 12345, + 'returnUrl' => route('showEventCheckoutPaymentReturn', [ + 'event_id' => $event_id, + 'is_payment_successful' => 1 + ]), + + ]; + break; default: Log::error('No payment gateway configured.'); return repsonse()->json([ @@ -390,12 +393,19 @@ class EventCheckoutController extends Controller */ session()->push('ticket_order_' . $event_id . '.transaction_data', $transaction_data); Log::info("Redirect url: " . $response->getRedirectUrl()); - return response()->json([ + + $return = [ 'status' => 'success', 'redirectUrl' => $response->getRedirectUrl(), - //'redirectData' => $response->getRedirectData(), 'message' => 'Redirecting to ' . $ticket_order['payment_gateway']->provider_name - ]); + ]; + + // GET method requests should not have redirectData on the JSON return string + if($response->getRedirectMethod() == 'POST') { + $return['redirectData'] = $response->getRedirectData(); + } + + return response()->json($return); } else { // display error to customer