1: <?php
 2: 
 3: /**
 4:  * Get information about a payment
 5:  * @see  https://app.syspay.com/bundles/emiuser/doc/merchant_api.html#get-payment-information
 6:  */
 7: class Syspay_Merchant_PaymentInfoRequest extends Syspay_Merchant_Request
 8: {
 9:     const METHOD = 'GET';
10:     const PATH   = '/api/v1/merchant/payment/%d';
11: 
12:     /**
13:      * @var integer
14:      */
15:     private $paymentId;
16: 
17:     public function __construct($paymentId = null)
18:     {
19:         if (null !== $paymentId) {
20:             $this->setPaymentId($paymentId);
21:         }
22:     }
23: 
24:     /**
25:      * {@inheritDoc}
26:      */
27:     public function getMethod()
28:     {
29:         return self::METHOD;
30:     }
31: 
32:     /**
33:      * {@inheritDoc}
34:      */
35:     public function getPath()
36:     {
37:         return sprintf(self::PATH, $this->paymentId);
38:     }
39: 
40:     /**
41:      * Gets the value of paymentId.
42:      *
43:      * @return integer
44:      */
45:     public function getPaymentId()
46:     {
47:         return $this->paymentId;
48:     }
49: 
50:     /**
51:      * Sets the value of paymentId.
52:      *
53:      * @param integer $paymentId the paymentId
54:      *
55:      * @return self
56:      */
57:     public function setPaymentId($paymentId)
58:     {
59:         $this->paymentId = $paymentId;
60: 
61:         return $this;
62:     }
63: 
64:     /**
65:      * {@inheritDoc}
66:      */
67:     public function buildResponse(stdClass $response)
68:     {
69:         if (!isset($response->payment)) {
70:             throw new Syspay_Merchant_UnexpectedResponseException(
71:                 'Unable to retrieve "payment" data from response',
72:                 $response
73:             );
74:         }
75: 
76:         $payment = Syspay_Merchant_Entity_Payment::buildFromResponse($response->payment);
77: 
78:         if (isset($response->redirect) && !empty($response->redirect)) {
79:             $payment->setRedirect($response->redirect);
80:         }
81: 
82:         return $payment;
83:     }
84: }
85: