1 <?php
 2 /**
 3  * @author Krzysztof Gzocha <krzysztof.gzocha@xsolve.pl>
 4  */
 5 namespace Team3\PayU\SignatureCalculator;
 6 
 7 use Team3\PayU\Configuration\Credentials\CredentialsInterface;
 8 use Team3\PayU\Order\Model\OrderInterface;
 9 use Team3\PayU\SignatureCalculator\Encoder\Algorithms\AlgorithmInterface;
10 
11 /**
12  * Will do the same job as {@link SignatureCalculatorInterface}
13  * but doesn't need data as array. It will turn {@link OrderInterface}
14  * array of alphabetical sorted parameters and pass it to signature calculator.
15  *
16  * Interface OrderSignatureCalculatorInterface
17  * @package Team3\PayU\SignatureCalculator
18  */
19 interface OrderSignatureCalculatorInterface
20 {
21     /**
22      * @param OrderInterface       $order
23      * @param CredentialsInterface $credentials
24      * @param AlgorithmInterface   $algorithm
25      *
26      * @return string
27      * @throws SignatureCalculatorException
28      */
29     public function calculate(
30         OrderInterface $order,
31         CredentialsInterface $credentials,
32         AlgorithmInterface $algorithm
33     );
34 }
35