1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-14 15:13:29 +01:00

Allow variables in the custom payment driver

This commit is contained in:
Benjamin Beganović 2021-02-09 13:23:48 +01:00
parent a1369d3c48
commit f9457de073

View File

@ -14,13 +14,18 @@ namespace App\PaymentDrivers;
use App\Models\ClientGatewayToken; use App\Models\ClientGatewayToken;
use App\Models\GatewayType; use App\Models\GatewayType;
use App\Models\Invoice;
use App\Models\Payment; use App\Models\Payment;
use App\Utils\HtmlEngine;
use App\Utils\Traits\MakesHash;
/** /**
* Class CustomPaymentDriver. * Class CustomPaymentDriver.
*/ */
class CustomPaymentDriver extends BaseDriver class CustomPaymentDriver extends BaseDriver
{ {
use MakesHash;
public $token_billing = false; public $token_billing = false;
public $can_authorise_credit_card = false; public $can_authorise_credit_card = false;
@ -52,8 +57,14 @@ class CustomPaymentDriver extends BaseDriver
*/ */
public function processPaymentView($data) public function processPaymentView($data)
{ {
$invitation = Invoice::findOrFail(
$this->decodePrimaryKey($data['invoices']['0']['invoice_id'])
)->invitations->first();
$variables = (new HtmlEngine($invitation))->generateLabelsAndValues();
$data['title'] = $this->company_gateway->getConfigField('name'); $data['title'] = $this->company_gateway->getConfigField('name');
$data['instructions'] = $this->company_gateway->getConfigField('text'); $data['instructions'] = strtr($this->company_gateway->getConfigField('text'), $variables['values']);
$this->payment_hash->data = array_merge((array) $this->payment_hash->data, $data); $this->payment_hash->data = array_merge((array) $this->payment_hash->data, $data);
$this->payment_hash->save(); $this->payment_hash->save();