Merge pull request #194 from jacobcat/add_migs_payment_gateway
Add MIGS payment gateway
|
|
@ -323,11 +323,18 @@ class EventCheckoutController extends Controller
|
|||
'testMode' => config('attendize.enable_test_payments'),
|
||||
]);
|
||||
|
||||
$transaction_data = [
|
||||
'amount' => ($ticket_order['order_total'] + $ticket_order['organiser_booking_fee']),
|
||||
'currency' => $event->currency->code,
|
||||
'description' => 'Order for customer: ' . $request->get('order_email'),
|
||||
];
|
||||
|
||||
|
||||
switch ($ticket_order['payment_gateway']->id) {
|
||||
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
|
||||
|
|
@ -341,12 +348,26 @@ class EventCheckoutController extends Controller
|
|||
: $event->organiser->name
|
||||
];
|
||||
break;
|
||||
break;
|
||||
case config('attendize.payment_gateway_stripe'):
|
||||
$token = $request->get('stripeToken');
|
||||
$transaction_data = [
|
||||
$transaction_data += [
|
||||
'token' => $token,
|
||||
];
|
||||
break;
|
||||
case config('attendize.payment_gateway_migs'):
|
||||
|
||||
$transaction_data += [
|
||||
'transactionId' => $event_id . date('YmdHis'), // TODO: Where to generate transaction id?
|
||||
'returnUrl' => route('showEventCheckoutPaymentReturn', [
|
||||
'event_id' => $event_id,
|
||||
'is_payment_successful' => 1
|
||||
]),
|
||||
|
||||
];
|
||||
|
||||
// Order description in MIGS is only 34 characters long; so we need a short description
|
||||
$transaction_data['description'] = "Ticket sales";
|
||||
|
||||
break;
|
||||
default:
|
||||
Log::error('No payment gateway configured.');
|
||||
|
|
@ -357,11 +378,6 @@ class EventCheckoutController extends Controller
|
|||
break;
|
||||
}
|
||||
|
||||
$transaction_data = [
|
||||
'amount' => ($ticket_order['order_total'] + $ticket_order['organiser_booking_fee']),
|
||||
'currency' => $event->currency->code,
|
||||
'description' => 'Order for customer: ' . $request->get('order_email'),
|
||||
] + $transaction_data;
|
||||
|
||||
$transaction = $gateway->purchase($transaction_data);
|
||||
|
||||
|
|
@ -381,13 +397,20 @@ class EventCheckoutController extends Controller
|
|||
* when we return
|
||||
*/
|
||||
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
|
||||
|
|
|
|||
|
|
@ -134,6 +134,9 @@ class ManageAccountController extends MyBaseController
|
|||
case config('attendize.payment_gateway_coinbase') : //BitPay
|
||||
$config = $request->get('coinbase');
|
||||
break;
|
||||
case config('attendize.payment_gateway_migs') : //MIGS
|
||||
$config = $request->get('migs');
|
||||
break;
|
||||
}
|
||||
|
||||
$account_payment_gateway = AccountPaymentGateway::firstOrNew(
|
||||
|
|
|
|||
|
|
@ -26,7 +26,9 @@
|
|||
"omnipay/bitpay": "dev-master",
|
||||
"omnipay/coinbase": "dev-master",
|
||||
"laracasts/utilities": "^2.1",
|
||||
"predis/predis": "~1.0"
|
||||
"predis/predis": "~1.0",
|
||||
"guzzlehttp/guzzle": "^6.2",
|
||||
"omnipay/migs": "^2.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.0",
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ return [
|
|||
'payment_gateway_stripe' => 1,
|
||||
'payment_gateway_paypal' => 2,
|
||||
'payment_gateway_coinbase' => 3,
|
||||
'payment_gateway_migs' => 4,
|
||||
|
||||
'outgoing_email_noreply' => env('MAIL_FROM_ADDRESS'),
|
||||
'outgoing_email' => env('MAIL_FROM_ADDRESS'),
|
||||
|
|
@ -61,7 +62,7 @@ return [
|
|||
'default_datetime_format' => 'F j, Y, g:i a',
|
||||
'default_query_cache' => 120, #Minutes
|
||||
'default_locale' => 'en',
|
||||
'default_payment_gateway' => 1, #Stripe=1 Paypal=2 BitPay=3
|
||||
'default_payment_gateway' => 1, #Stripe=1 Paypal=2 BitPay=3 MIGS=4
|
||||
|
||||
'cdn_url_user_assets' => '',
|
||||
'cdn_url_static_assets' => ''
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ return [
|
|||
*/
|
||||
|
||||
'mailgun' => [
|
||||
'domain' => '',
|
||||
'secret' => '',
|
||||
'domain' => env('MAILGUN_DOMAIN'),
|
||||
'secret' => env('MAILGUN_SECRET'),
|
||||
],
|
||||
|
||||
'mandrill' => [
|
||||
|
|
|
|||
|
|
@ -37,6 +37,14 @@ class PaymentGatewaySeeder extends Seeder
|
|||
'is_on_site' => 0,
|
||||
'can_refund' => 0,
|
||||
],
|
||||
[
|
||||
'id' => 4,
|
||||
'name' => 'Migs_ThreeParty',
|
||||
'provider_name' => 'MasterCard Internet Gateway Service',
|
||||
'provider_url' => 'https://www.mastercard.com/gateway/payment-processing/online-credit-card-and-debit-card-payment-processing.html',
|
||||
'is_on_site' => 0,
|
||||
'can_refund' => 0,
|
||||
],
|
||||
];
|
||||
|
||||
DB::table('payment_gateways')->insert($payment_gateways);
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 413 KiB After Width: | Height: | Size: 413 KiB |
|
Before Width: | Height: | Size: 816 KiB After Width: | Height: | Size: 816 KiB |
|
Before Width: | Height: | Size: 413 KiB After Width: | Height: | Size: 413 KiB |
|
|
@ -121,6 +121,36 @@
|
|||
|
||||
</section>
|
||||
|
||||
{{--BDO MIGS--}}
|
||||
<section class="payment_gateway_options" id="gateway_{{config('attendize.payment_gateway_migs')}}">
|
||||
<h4>Mastercard Internet Gateway Service Settings</h4>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
{!! Form::label('migs[merchantAccessCode]', 'Merchant Access Code', array('class'=>'control-label ')) !!}
|
||||
{!! Form::text('migs[merchantAccessCode]', $account->getGatewayConfigVal(config('attendize.payment_gateway_migs'), 'merchantAccessCode'),[ 'class'=>'form-control']) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
{!! Form::label('migs[merchantId]', 'Merchant ID', ['class'=>'control-label ']) !!}
|
||||
{!! Form::text('migs[merchantId]', $account->getGatewayConfigVal(config('attendize.payment_gateway_migs'), 'merchantId'),[ 'class'=>'form-control']) !!}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
{!! Form::label('migs[secureHash]', 'Secure Hash Code', array('class'=>'control-label ')) !!}
|
||||
{!! Form::text('migs[secureHash]', $account->getGatewayConfigVal(config('attendize.payment_gateway_migs'), 'secureHash'),[ 'class'=>'form-control']) !!}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||