<?php namespace bff\contracts; /** * Bills: Payment Gateway Provider * Provides gateway to pay */ interface PaymentProvider extends Provider { /** * Payment system ways * Way currency - uppercase keyword ISO 4217 * @return array [] - if not supported, * example: * [ * 'way1' => ['title' => 'Way 1', 'currency' => 'USD'], * ] */ public function payWays(): array; /** * Payment system default currency uppercase keyword (ISO 4217) * Example: return 'USD'; * @return string */ public function payDefaultCurrency(): string; /** * Payment system pay form * @param string $way payment system way key * @param float $amount amount to pay * @param int $billID bill ID * @param string $billDescription bill description * @param array $extra additional payment information * @return string HTML */ public function payForm(string $way, float $amount, int $billID, string $billDescription, array $extra = []): string; /** * Payment system pay process * @return \bff\http\Response */ public function payProcess(); /** * Payment system default logo url * @return string */ public function payLogoUrl(): string; }