24 lines
747 B
PHP
24 lines
747 B
PHP
<?php
|
|
|
|
namespace App\Billing\Contracts;
|
|
|
|
use App\Models\BillingOrder;
|
|
|
|
interface PaymentGateway
|
|
{
|
|
/** @return array<int,array{code:string,name:string,fee:int}> */
|
|
public function paymentMethods(BillingOrder $order): array;
|
|
|
|
/** @return array{external_id:?string,checkout_url:?string,metadata:array<string,mixed>} */
|
|
public function createCheckout(BillingOrder $order): array;
|
|
|
|
/** @param array<string,mixed> $payload */
|
|
public function verifyWebhook(array $payload, array $headers = []): bool;
|
|
|
|
/** @param array<string,mixed> $payload */
|
|
public function statusFromWebhook(array $payload): string;
|
|
|
|
/** @param array<string,mixed> $payload */
|
|
public function externalIdFromWebhook(array $payload): ?string;
|
|
}
|