<?php

namespace App\Payment\Gateway;

interface PaymentGatewayInterface
{
    public function getName(): string;

    /**
     * Initiates payment, returns redirect URL or token.
     */
    public function initiate(int $amountRials, string $orderId, string $callbackUrl): PaymentInitResult;

    /**
     * Verifies callback and confirms payment.
     */
    public function verify(array $callbackData): PaymentVerifyResult;
}
