1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-10 13:12:50 +01:00
invoiceninja/app/Http/Requests/CreateOnlinePaymentRequest.php
Joshua Dwire 50f2c80190 Stripe 3D secure support (#2897)
* Support Stripe 3D secure

* Use the old Charge API for bank account payments
2019-07-12 14:35:35 +10:00

59 lines
1.5 KiB
PHP

<?php
namespace App\Http\Requests;
use App\Models\Invitation;
use App\Models\GatewayType;
class CreateOnlinePaymentRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$account = $this->invitation->account;
$paymentDriver = $account->paymentDriver($this->invitation, $this->gateway_type);
return $paymentDriver->rules();
}
public function sanitize()
{
$input = $this->all();
$invitation = Invitation::with('invoice.invoice_items', 'invoice.client.currency', 'invoice.client.account.currency', 'invoice.client.account.account_gateways.gateway')
->where('invitation_key', '=', $this->invitation_key)
->firstOrFail();
$input['invitation'] = $invitation;
if ($gatewayTypeAlias = request()->gateway_type) {
if ($gatewayTypeAlias != GATEWAY_TYPE_TOKEN) {
$input['gateway_type'] = GatewayType::getIdFromAlias($gatewayTypeAlias);
} else {
$input['gateway_type'] = $gatewayTypeAlias;
}
} else {
$input['gateway_type'] = session($invitation->id . 'gateway_type');
}
$this->replace($input);
return $this->all();
}
}