mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-10 05:02:36 +01:00
Updated code to fix issues with BeanStream payments.
This commit is contained in:
parent
227282a8cf
commit
638d26adb8
@ -471,10 +471,20 @@ class AccountController extends \BaseController {
|
|||||||
foreach ($fields as $field => $details)
|
foreach ($fields as $field => $details)
|
||||||
{
|
{
|
||||||
if (!in_array($field, ['testMode', 'developerMode', 'headerImageUrl', 'solutionType', 'landingPage', 'brandName']))
|
if (!in_array($field, ['testMode', 'developerMode', 'headerImageUrl', 'solutionType', 'landingPage', 'brandName']))
|
||||||
|
{
|
||||||
|
if(strtolower($gateway->name) == 'beanstream')
|
||||||
|
{
|
||||||
|
if(in_array($field, ['merchant_id', 'passCode']))
|
||||||
{
|
{
|
||||||
$rules[$gateway->id.'_'.$field] = 'required';
|
$rules[$gateway->id.'_'.$field] = 'required';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$rules[$gateway->id.'_'.$field] = 'required';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$validator = Validator::make(Input::all(), $rules);
|
$validator = Validator::make(Input::all(), $rules);
|
||||||
|
@ -129,7 +129,8 @@ class PaymentController extends \BaseController
|
|||||||
private function getPaymentDetails($invoice, $input = null)
|
private function getPaymentDetails($invoice, $input = null)
|
||||||
{
|
{
|
||||||
$key = $invoice->invoice_number . '_details';
|
$key = $invoice->invoice_number . '_details';
|
||||||
$paymentLibrary = $invoice->client->account->account_gateways[0]->gateway->paymentlibrary;
|
$gateway = $invoice->client->account->account_gateways[0]->gateway;
|
||||||
|
$paymentLibrary = $gateway->paymentlibrary;
|
||||||
|
|
||||||
if ($input && $paymentLibrary->name == "Omnipay")
|
if ($input && $paymentLibrary->name == "Omnipay")
|
||||||
{
|
{
|
||||||
@ -174,10 +175,21 @@ class PaymentController extends \BaseController
|
|||||||
'ship_to_state' => $input['state'],
|
'ship_to_state' => $input['state'],
|
||||||
'ship_to_postal_code' => $input['postal_code'],
|
'ship_to_postal_code' => $input['postal_code'],
|
||||||
'currency_code' => $invoice->client->currency->code,
|
'currency_code' => $invoice->client->currency->code,
|
||||||
'returnUrl' => URL::to('complete'),
|
|
||||||
'cancelUrl' => URL::to('/')
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if(strtolower($gateway->name) == 'beanstream')
|
||||||
|
{
|
||||||
|
$data['phone'] = $input['phone'];
|
||||||
|
$data['email'] = $input['email'];
|
||||||
|
$data['country'] = $input['country'];
|
||||||
|
$data['ship_to_country'] = $input['country'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if(strlen($data['cc_exp']) == 5)
|
||||||
|
{
|
||||||
|
$data['cc_exp'] = '0'.$data['cc_exp'];
|
||||||
|
}
|
||||||
|
|
||||||
Session::put($key, $data);
|
Session::put($key, $data);
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
@ -211,8 +223,9 @@ class PaymentController extends \BaseController
|
|||||||
public function show_payment($invitationKey)
|
public function show_payment($invitationKey)
|
||||||
{
|
{
|
||||||
// For PayPal Express we redirect straight to their site
|
// For PayPal Express we redirect straight to their site
|
||||||
$invitation = Invitation::with('invoice.client.account')->where('invitation_key', '=', $invitationKey)->firstOrFail();
|
$invitation = Invitation::with('invoice.client.account', 'invoice.client.account.account_gateways.gateway')->where('invitation_key', '=', $invitationKey)->firstOrFail();
|
||||||
$account = $invitation->invoice->client->account;
|
$account = $invitation->invoice->client->account;
|
||||||
|
|
||||||
if ($account->isGatewayConfigured(GATEWAY_PAYPAL_EXPRESS))
|
if ($account->isGatewayConfigured(GATEWAY_PAYPAL_EXPRESS))
|
||||||
{
|
{
|
||||||
if (Session::has('error'))
|
if (Session::has('error'))
|
||||||
@ -226,16 +239,21 @@ class PaymentController extends \BaseController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$invitation = Invitation::with('contact', 'invoice.client')->where('invitation_key', '=', $invitationKey)->firstOrFail();
|
$invitation = Invitation::with('invoice.invoice_items', 'invoice.client.currency', 'invoice.client.account.account_gateways.gateway')->where('invitation_key', '=', $invitationKey)->firstOrFail();
|
||||||
$invoice = $invitation->invoice;
|
$invoice = $invitation->invoice;
|
||||||
$client = $invoice->client;
|
$client = $invoice->client;
|
||||||
|
$gateway = $invoice->client->account->account_gateways[0]->gateway;
|
||||||
|
$paymentLibrary = $gateway->paymentlibrary;
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'showBreadcrumbs' => false,
|
'showBreadcrumbs' => false,
|
||||||
'invitationKey' => $invitationKey,
|
'invitationKey' => $invitationKey,
|
||||||
'invoice' => $invoice,
|
'invoice' => $invoice,
|
||||||
'client' => $client,
|
'client' => $client,
|
||||||
'contact' => $invitation->contact
|
'contact' => $invitation->contact,
|
||||||
|
'paymentLibrary' => $paymentLibrary ,
|
||||||
|
'gateway' => $gateway,
|
||||||
|
'countries' => Country::remember(DEFAULT_QUERY_CACHE)->orderBy('name')->get(),
|
||||||
];
|
];
|
||||||
|
|
||||||
return View::make('payments.payment', $data);
|
return View::make('payments.payment', $data);
|
||||||
@ -325,7 +343,7 @@ class PaymentController extends \BaseController
|
|||||||
return Utils::fatalError('Sorry, there was an error processing your payment. Please try again later.<p>', $response->getMessage());
|
return Utils::fatalError('Sorry, there was an error processing your payment. Please try again later.<p>', $response->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ($input && $paymentLibrary->name == "PHP-Payments")
|
else if ($paymentLibrary->name == "PHP-Payments")
|
||||||
{
|
{
|
||||||
$provider = $accountGateway->gateway->provider;
|
$provider = $accountGateway->gateway->provider;
|
||||||
$p = new PHP_Payments;
|
$p = new PHP_Payments;
|
||||||
@ -335,9 +353,9 @@ class PaymentController extends \BaseController
|
|||||||
|
|
||||||
$response = $p->oneoff_payment($provider, $details, $config);
|
$response = $p->oneoff_payment($provider, $details, $config);
|
||||||
|
|
||||||
if ($response->status == 'Success')
|
if (strtolower($response->status) == 'success')
|
||||||
{
|
{
|
||||||
$payment = self::createPayment($invitation, $ref);
|
$payment = self::createPayment($invitation, $response->response_message);
|
||||||
|
|
||||||
$invoice->invoice_status_id = INVOICE_STATUS_PAID;
|
$invoice->invoice_status_id = INVOICE_STATUS_PAID;
|
||||||
$invoice->save();
|
$invoice->save();
|
||||||
@ -349,8 +367,8 @@ class PaymentController extends \BaseController
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Session::flash('error', $response->details);
|
Session::flash('error', $response->response_message);
|
||||||
return Utils::fatalError('Sorry, there was an error processing your payment. Please try again later.<p>', $response->reason);
|
return Utils::fatalError('Sorry, there was an error processing your payment. Please try again later.<p>', $response->response_message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,10 @@
|
|||||||
'address1' => 'required',
|
'address1' => 'required',
|
||||||
'city' => 'required',
|
'city' => 'required',
|
||||||
'state' => 'required',
|
'state' => 'required',
|
||||||
'postal_code' => 'required'
|
'postal_code' => 'required',
|
||||||
|
'country' => 'required',
|
||||||
|
'phone' => 'required',
|
||||||
|
'email' => 'required'
|
||||||
)) }}
|
)) }}
|
||||||
{{ Former::populate($client) }}
|
{{ Former::populate($client) }}
|
||||||
{{ Former::populateField('first_name', $contact->first_name) }}
|
{{ Former::populateField('first_name', $contact->first_name) }}
|
||||||
@ -66,6 +69,14 @@
|
|||||||
{{ Former::text('state')->label('State/Province') }}
|
{{ Former::text('state')->label('State/Province') }}
|
||||||
{{ Former::text('postal_code') }}
|
{{ Former::text('postal_code') }}
|
||||||
|
|
||||||
|
<?php if(strtolower($gateway->name) == 'beanstream') { ?>
|
||||||
|
{{ Former::select('country')->addOption('','')->label('Country')
|
||||||
|
->fromQuery($countries, 'name', 'iso_3166_2') }}
|
||||||
|
{{ Former::text('phone') }}
|
||||||
|
{{ Former::text('email') }}
|
||||||
|
<?php } ?>
|
||||||
|
|
||||||
|
<?php echo($gateway->name); ?>
|
||||||
{{ Former::actions( Button::primary_submit_lg('Pay Now - ' . Utils::formatMoney($invoice->amount, $client->currency_id) )) }}
|
{{ Former::actions( Button::primary_submit_lg('Pay Now - ' . Utils::formatMoney($invoice->amount, $client->currency_id) )) }}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user