فهرست مستندات پروژه
مرجع API
مرجع کامل تمام کلاسها، اینترفیسها و متدهای عمومی.
Pardakht (نقطه ورود)
namespace Eram\Pardakht;
final class Pardakht
{
public function __construct(
?HttpClient $httpClient = null,
?Logger $logger = null,
?EventDispatcher $eventDispatcher = null,
?SoapClientFactory $soapFactory = null,
);
public function create(string $gateway, object $config): GatewayInterface;
/** @return list<string> */
public static function available(): array;
}
قراردادها
GatewayInterface
namespace Eram\Pardakht\Contracts;
interface GatewayInterface
{
public function getName(): string;
public function purchase(PurchaseRequest $request): RedirectResponse;
/** @param array<string, mixed>|null $callbackData */
public function verify(?array $callbackData = null): TransactionInterface;
}
TransactionInterface
namespace Eram\Pardakht\Contracts;
interface TransactionInterface
{
public function getId(): TransactionId;
public function getGatewayName(): string;
public function getAmount(): Amount;
public function getStatus(): TransactionStatus;
public function getReferenceId(): string;
public function getTrackingCode(): ?string;
public function getCardNumber(): ?string;
/** @return array<string, mixed> */
public function getExtra(): array;
public function withStatus(TransactionStatus $status): static;
}
SupportsSettlement
namespace Eram\Pardakht\Contracts;
interface SupportsSettlement
{
public function settle(TransactionInterface $transaction): TransactionInterface;
}
پیادهسازی شده توسط: ملت، پارسیان.
SupportsRefund
namespace Eram\Pardakht\Contracts;
interface SupportsRefund
{
public function refund(TransactionInterface $transaction, ?Amount $amount = null): TransactionInterface;
}
پول
Amount
namespace Eram\Pardakht\Money;
final class Amount
{
public static function fromRials(int $rials): self;
public static function fromToman(int $toman): self;
public function inRials(): int;
public function inToman(): int;
public function add(self $other): self;
public function subtract(self $other): self;
public function equals(self $other): bool;
public function greaterThan(self $other): bool;
public function lessThan(self $other): bool;
public function isZero(): bool;
public function __toString(): string; // مقدار ریالی را برمیگرداند
}
Currency
namespace Eram\Pardakht\Money;
enum Currency: string
{
case IRR = 'IRR'; // ریال
case IRT = 'IRT'; // تومان
public function label(): string;
}
تراکنش
Transaction
namespace Eram\Pardakht\Transaction;
final class Transaction implements TransactionInterface
{
public function __construct(
TransactionId $id,
string $gatewayName,
Amount $amount,
TransactionStatus $status,
string $referenceId,
?string $trackingCode = null,
?string $cardNumber = null,
array $extra = [],
);
public function withStatus(TransactionStatus $status): static;
public function withTrackingCode(string $trackingCode): self;
// ... تمام متدهای TransactionInterface
}
TransactionId
namespace Eram\Pardakht\Transaction;
final class TransactionId
{
public function __construct(string $value);
public function value(): string;
public function equals(self $other): bool;
public function __toString(): string;
}
TransactionStatus
namespace Eram\Pardakht\Transaction;
enum TransactionStatus: string
{
case Pending = 'pending';
case Paid = 'paid';
case Verified = 'verified';
case Settled = 'settled';
case Failed = 'failed';
case Refunded = 'refunded';
public function label(string $locale = 'fa'): string;
}
برچسبها بر اساس زبان:
| وضعیت | 'fa' | 'en' |
|---|---|---|
| Pending | در انتظار | Pending |
| Paid | پرداخت شده | Paid |
| Verified | تایید شده | Verified |
| Settled | تسویه شده | Settled |
| Failed | ناموفق | Failed |
| Refunded | بازگشت داده شده | Refunded |
HTTP
PurchaseRequest
namespace Eram\Pardakht\Http;
final class PurchaseRequest
{
/** @param array<string, mixed> $extra */
public function __construct(
Amount $amount,
string $callbackUrl,
string $orderId,
string $description = '',
?string $mobile = null,
?string $email = null,
array $extra = [],
);
public function getAmount(): Amount;
public function getCallbackUrl(): string;
public function getOrderId(): string;
public function getDescription(): string;
public function getMobile(): ?string;
public function getEmail(): ?string;
/** @return array<string, mixed> */
public function getExtra(): array;
}
RedirectResponse
namespace Eram\Pardakht\Http;
final class RedirectResponse
{
public static function redirect(string $url, string $referenceId): self;
/** @param array<string, string> $formData */
public static function post(string $url, string $referenceId, array $formData = []): self;
public function getUrl(): string;
public function getMethod(): string;
public function getReferenceId(): string;
/** @return array<string, string> */
public function getFormData(): array;
public function isPost(): bool;
public function renderAutoSubmitForm(string $submitText = 'در حال انتقال به درگاه...'): string;
}
HttpClient
namespace Eram\Pardakht\Http;
interface HttpClient
{
/** @param array<string, string> $headers */
public function postJson(string $url, string $body, array $headers = []): HttpResponse;
}
HttpResponse
namespace Eram\Pardakht\Http;
final class HttpResponse
{
public int $statusCode;
public string $body;
public array $headers;
public function header(string $name): ?string;
public function isSuccessful(): bool;
}
Logger
namespace Eram\Pardakht\Http;
interface Logger
{
/** @param array<string, mixed> $context */
public function debug(string $message, array $context = []): void;
}
EventDispatcher
namespace Eram\Pardakht\Http;
interface EventDispatcher
{
public function dispatch(object $event): object;
}
بانکداری
CardNumber
namespace Eram\Pardakht\Banking;
final class CardNumber
{
public function __construct(string $number);
public function number(): string;
public function masked(): string;
public function formatted(): string;
public function bankName(): ?string;
public function equals(self $other): bool;
public function __toString(): string;
public static function isValid(string $number): bool;
}
Sheba
namespace Eram\Pardakht\Banking;
final class Sheba
{
public function __construct(string $sheba);
public function value(): string;
public function digits(): string;
public function bankName(): ?string;
public function formatted(): string;
public function equals(self $other): bool;
public function __toString(): string;
public static function isValid(string $sheba): bool;
}
BankIdentifier
namespace Eram\Pardakht\Banking;
final class BankIdentifier
{
public static function fromCardNumber(string $number): ?string;
public static function fromSheba(string $sheba): ?string;
}
رویدادها
تمام رویدادها کلاسهای دادهای ساده با خصوصیات public readonly هستند.
| رویداد | خصوصیات |
|---|---|
PurchaseInitiated | gatewayName: string، request: PurchaseRequest |
CallbackReceived | gatewayName: string، callbackData: array |
PaymentVerified | gatewayName: string، transaction: TransactionInterface |
PaymentSettled | gatewayName: string، transaction: TransactionInterface |
PaymentFailed | gatewayName: string، reason: string، errorCode: int|string |
استثناها
| استثنا | ارثبری از | متدهای اضافی |
|---|---|---|
PardakhtException | RuntimeException | — |
InvalidAmountException | PardakhtException | — |
ConnectionException | PardakhtException | — |
GatewayException | PardakhtException | getGatewayName(): string، getErrorCode(): int|string |
VerificationException | GatewayException | (ارثبری شده) |
⁅مرجع کامل تما کلاس اینترفیس و متد عمومی namespace eram pardakht final class pardakht public function construct httpclient httpclient null logger logger null eventdispatcher eventdispatcher null soapclientfactory soapfactory null public function create string gateway object config gatewayinterface return list string public static function available array namespace eram pardakht contracts interface gatewayinterface public function getname string public function purchase purchaserequest request redirectresponse param array string mixed null callbackdata public function verify array callbackdata null transactioninterface namespace eram pardakht contracts interface transactioninterface public function getid transactionid public function getgatewayname string public function getamount amount public function getstatus transactionstatus public function getreferenceid string public function gettrackingcode string public function getcardnumber string return array string mixed public function getextra array public function withstatus transactionstatus status static namespace eram pardakht contracts interface supportssettlement public function settle transactioninterface transaction transactioninterface پیادهسازی پیاد سازی شد توسط ملت پارس namespace eram pardakht contracts interface supportsrefund public function refund transactioninterface transaction amount amount null transactioninterface namespace eram pardakht money final class amount public static function fromrials int rials self public static function fromtoman int toman self public function inrials int public function intoman int public function add self other self public function subtract self other self public function equals self other bool public function greaterthan self other bool public function lessthan self other bool public function iszero bool public function tostring string مقدار ریالی را برمیگرد رمید گرداند namespace eram pardakht money enum currency string case irr irr ریال case irt irt توم public function label string namespace eram pardakht transaction final class transaction implements transactioninterface public function construct transactionid id string gatewayname amount amount transactionstatus status string referenceid string trackingcode null string cardnumber null array extra public function withstatus transactionstatus status static public function withtrackingcode string trackingcode self تما متد transactioninterface namespace eram pardakht transaction final class transactionid public function construct string value public function value string public function equals self other bool public function tostring string namespace eram pardakht transaction enum transactionstatus string case pending pending case paid paid case verified verified case settled settled case failed failed case refunded refunded public function label string locale fa string برچسب بر اساس زبان وضعیت fa en pending در انتظار pending paid پرداخت شد paid verified تای شد verified settled تسویه شد settled failed ناموفق failed refunded بازگشت داد شد refunded namespace eram pardakht http final class purchaserequest param array string mixed extra public function construct amount amount string callbackurl string orderid string description string mobile null string email null array extra public function getamount amount public function getcallbackurl string public function getorderid string public function getdescription string public function getmobile string public function getemail string return array string mixed public function getextra array namespace eram pardakht http final class redirectresponse public static function redirect string url string referenceid self param array string string formdata public static function post string url string referenceid array formdata self public function geturl string public function getmethod string public function getreferenceid string return array string string public function getformdata array public function ispost bool public function renderautosubmitform string submittext در حال انتقال به درگاه string namespace eram pardakht http interface httpclient param array string string headers public function postjson string url string body array headers httpresponse namespace eram pardakht http final class httpresponse public int statuscode public string body public array headers public function header string name string public function issuccessful bool namespace eram pardakht http interface logger param array string mixed context public function debug string message array context void namespace eram pardakht http interface eventdispatcher public function dispatch object event object namespace eram pardakht banking final class cardnumber public function construct string number public function number string public function masked string public function formatted string public function bankname string public function equals self other bool public function tostring string public static function isvalid string number bool namespace eram pardakht banking final class sheba public function construct string sheba public function value string public function digits string public function bankname string public function formatted string public function equals self other bool public function tostring string public static function isvalid string sheba bool namespace eram pardakht banking final class bankidentifier public static function fromcardnumber string number string public static function fromsheba string sheba string تما رویداد کلاس داد ساد با خصوصیت public readonly هستند رویداد خصوصیت purchaseinitiated gatewayname string request purchaserequest callbackreceived gatewayname string callbackdata array paymentverified gatewayname string transaction transactioninterface paymentsettled gatewayname string transaction transactioninterface paymentfailed gatewayname string reason string errorcode int string استثنا ارثبری ارث بری از متد اضافی pardakhtexception runtimeexception invalidamountexception pardakhtexception connectionexception pardakhtexception gatewayexception pardakhtexception getgatewayname string geterrorcode int string verificationexception gatewayexception ارثبری ارث بری شد⁆
⁅مرجع api⁆
⁅pardakht نقطه ورود قراردادهاپولتراکنشhttpبانکداریرویدادهااستثنا⁆
⁅gatewayinterfacetransactioninterfacesupportssettlementsupportsrefundamountcurrencytransactiontransactionidtransactionstatuspurchaserequestredirectresponsehttpclienthttpresponseloggereventdispatchercardnumbershebabankidentifier⁆