/** * @param $track * @param $debug * * @throws RussianPostApiException * @throws InvalidTrackException * * @return OperationHistoryData */ public function getTrackOperationHistory($track, &$debug, $language = "RUS") { if (!TrackValidator::validateTrack($track)) { throw new InvalidTrackException(); } $track = TrackValidator::filterTrack($track); $client = $this->initClient(); $AuthorizationHeader = self::createAuthorizationHeader($this->login, $this->password); $historyRequest = self::createOperationHistoryRequest($track, 0, $language); $parameters = ["AuthorizationHeader" => $this->serializer->serialize($AuthorizationHeader, 'array'), "historyRequest" => $this->serializer->serialize($historyRequest, 'array')]; //($operation, $params=array(), $namespace='http://tempuri.org', $soapAction='', $headers=false, $rpcParams=null, $style='rpc', $use='encoded') $result = $client->call('GetOperationHistory', $parameters, 'http://russianpost.org/operationhistory'); $debug = array("Request" => $client->request, "Response" => $client->response, "Debug" => $client->debug_str); if ($client->fault) { throw new RussianPostApiException(print_r($result, true)); } else { $err = $client->getError(); if ($err) { throw new RussianPostApiException($err); } else { /** @var OperationHistoryData $object */ $object = $this->serializer->deserialize($result, 'a3mg\\RussianPostBundle\\Model\\OperationHistoryData', 'array'); return $object; } } }
public function testTrackValidation() { $this->assertEquals("14211716007389", TrackValidator::filterTrack("142117 16 00738 9.")); $this->assertTrue(TrackValidator::validateUPU_S10("EE123456785KR")); $this->assertFalse(TrackValidator::validateUPU_S10("EE1234567856KR")); $this->assertFalse(TrackValidator::validateUPU_S10("EE123456785AP")); // Invalid country code $this->assertFalse(TrackValidator::validateUPU_S10("QZ123456785RU")); $this->assertFalse(TrackValidator::validateUPU_S10("EE1234AA785RU")); $this->assertFalse(TrackValidator::validateUPU_S10("14211716007389")); $this->assertTrue(TrackValidator::validateRTM_001_01_99("14211716007389")); $this->assertFalse(TrackValidator::validateRTM_001_01_99("14211716007388")); $this->assertFalse(TrackValidator::validateRTM_001_01_99("142117160073889")); $this->assertFalse(TrackValidator::validateRTM_001_01_99("142117160073")); $this->assertFalse(TrackValidator::validateRTM_001_01_99("EE1234AA785RU")); $this->assertTrue(TrackValidator::validateTrack("EE123456785KR")); $this->assertTrue(TrackValidator::validateTrack("14211716007389")); }