Example #1
0
 public function resolve(array $data)
 {
     Assert::that($data, null, 'data')->choicesNotEmpty(['Status', 'Checksum']);
     // The data indicates a version check
     if ($data['Status'] === VersionCheck::STATE_VERSION_CHECK) {
         return VersionCheck::generateChecksum($this->merchantId, $this->secretCode) === $data['Checksum'];
     }
     $data = $this->prepareOrderData($data);
     $order = new Order($data['PaymentMethod'], $data['OrderID'], $data['Status'], $data['PaymentID'], $data['StatusCode'], $data['TransactionID'], $data['Reference'], $data['Amount'], $data['Currency'], $data['Duration'], $data['ConsumerName'], $data['ConsumerAccountNumber'], $data['ConsumerAddress'], $data['ConsumerHouseNumber'], $data['ConsumerCity'], $data['ConsumerCountry'], $data['ConsumerEmail'], $data['ConsumerPhoneNumber'], $data['ConsumerIPAddress']);
     Assert::that($data['Checksum'], null, 'data["Checksum"]')->eq(Order::generateChecksum($this->merchantId, $this->secretCode, $order), 'Invalid Checksum in data');
     return $order;
 }