@@ -0,0 +1,23 @@
|
||||
<?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;
|
||||
}
|
||||
Reference in New Issue
Block a user