Square: New payment flow (#75)

* pass livewirePaymentView & processPaymentView thru base driver

* square
This commit is contained in:
Benjamin Beganović 2024-08-09 01:07:51 +02:00
parent 339a92fa6f
commit eb1576aa7c
3 changed files with 32 additions and 6 deletions

View File

@ -21,6 +21,7 @@ use App\Models\Invoice;
use App\Models\Payment;
use App\Models\PaymentType;
use App\Models\SystemLog;
use App\PaymentDrivers\Common\LivewireMethodInterface;
use App\PaymentDrivers\Common\MethodInterface;
use App\PaymentDrivers\SquarePaymentDriver;
use App\Utils\Traits\MakesHash;
@ -29,7 +30,7 @@ use Illuminate\Http\Request;
use Illuminate\View\View;
use Square\Http\ApiResponse;
class CreditCard implements MethodInterface
class CreditCard implements MethodInterface, LivewireMethodInterface
{
use MakesHash;
@ -64,10 +65,7 @@ class CreditCard implements MethodInterface
public function paymentView($data)
{
$data['gateway'] = $this->square_driver;
$data['amount'] = $this->square_driver->payment_hash->data->amount_with_fee;
$data['currencyCode'] = $this->square_driver->client->getCurrencyCode();
$data['square_contact'] = $this->buildClientObject();
$data = $this->paymentData($data);
return render('gateways.square.credit_card.pay', $data);
}
@ -238,5 +236,24 @@ class CreditCard implements MethodInterface
return false;
}
/**
* @inheritDoc
*/
public function livewirePaymentView(array $data): string
{
return 'gateways.square.credit_card.pay_livewire';
}
/**
* @inheritDoc
*/
public function paymentData(array $data): array
{
$data['gateway'] = $this->square_driver;
$data['amount'] = $this->square_driver->payment_hash->data->amount_with_fee;
$data['currencyCode'] = $this->square_driver->client->getCurrencyCode();
$data['square_contact'] = $this->buildClientObject();
return $data;
}
}

View File

@ -8,6 +8,8 @@
* @license https://www.elastic.co/licensing/elastic-license
*/
import { wait, instant } from '../wait';
class SquareCreditCard {
constructor() {
this.appId = document.querySelector('meta[name=square-appId]').content;
@ -180,4 +182,9 @@ class SquareCreditCard {
}
}
new SquareCreditCard().handle();
function boot() {
new SquareCreditCard().handle();
}
instant() ? boot() : wait('#square-credit-card-payment').then(() => boot());

View File

@ -7,6 +7,8 @@
<meta name="square_contact" content="{{ json_encode($square_contact) }}">
<meta name="amount" content="{{ $amount }}">
<meta name="currencyCode" content="{{ $currencyCode }}">
<meta name="instant-payment" content="yes" />
<style>
.loader {
border-top-color: #3498db;