use Monime\contracts\MonimePaymentAdapterInterface;
use Monime\contracts\MonimeWebhookAdapterInterface;
use Monime\core\CreateMonimePayload;
class CustomMonimeAdapter implements MonimePaymentAdapterInterface, MonimeWebhookAdapterInterface
{
public function getAdapterId(): string
{
return 'custom_adapter';
}
public function buildPaymentPayload(array $data): CreateMonimePayload
{
return new CreateMonimePayload(
$data['lineItems'] ?? [],
$data['idempotency_key'],
$data['reference'],
$data['name'],
$data['description'],
$data['cancel_url'],
$data['success_url'],
$data['financialAccountId'] ?? '',
$data['currency'] ?? 'SLE',
$data['paymentOptions'] ?? [],
$data['metadata'] ?? [],
$data['callbackState'] ?? ''
);
}
public function handleWebhook(array $payload): void
{
// Read the verified Monime payload here.
// Match the payment reference back to your local record.
// Update the order, donation, invoice, or membership status.
}
}