Keine Beschreibung

SendMessageResponseItem.php 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace AliyunMNS\Model;
  3. use AliyunMNS\Constants;
  4. use AliyunMNS\Traits\MessageIdAndMD5;
  5. /**
  6. * if isSucceed() == TRUE, the messageId and messageBodyMD5 are returned.
  7. * otherwise, the errorCode and errorMessage are returned.
  8. */
  9. class SendMessageResponseItem
  10. {
  11. use MessageIdAndMD5;
  12. protected $isSucceed;
  13. protected $errorCode;
  14. protected $errorMessage;
  15. public function __construct($isSucceed, $param1, $param2)
  16. {
  17. $this->isSucceed = $isSucceed;
  18. if ($isSucceed == TRUE)
  19. {
  20. $this->messageId = $param1;
  21. $this->messageBodyMD5 = $param2;
  22. }
  23. else
  24. {
  25. $this->errorCode = $param1;
  26. $this->errorMessage = $param2;
  27. }
  28. }
  29. public function isSucceed()
  30. {
  31. return $this->isSucceed;
  32. }
  33. public function getErrorCode()
  34. {
  35. return $this->errorCode;
  36. }
  37. public function getErrorMessage()
  38. {
  39. return $this->errorMessage;
  40. }
  41. static public function fromXML($xmlReader)
  42. {
  43. $messageId = NULL;
  44. $messageBodyMD5 = NULL;
  45. $errorCode = NULL;
  46. $errorMessage = NULL;
  47. while ($xmlReader->read())
  48. {
  49. switch ($xmlReader->nodeType)
  50. {
  51. case \XMLReader::ELEMENT:
  52. switch ($xmlReader->name) {
  53. case Constants::MESSAGE_ID:
  54. $xmlReader->read();
  55. if ($xmlReader->nodeType == \XMLReader::TEXT)
  56. {
  57. $messageId = $xmlReader->value;
  58. }
  59. break;
  60. case Constants::MESSAGE_BODY_MD5:
  61. $xmlReader->read();
  62. if ($xmlReader->nodeType == \XMLReader::TEXT)
  63. {
  64. $messageBodyMD5 = $xmlReader->value;
  65. }
  66. break;
  67. case Constants::ERROR_CODE:
  68. $xmlReader->read();
  69. if ($xmlReader->nodeType == \XMLReader::TEXT)
  70. {
  71. $errorCode = $xmlReader->value;
  72. }
  73. break;
  74. case Constants::ERROR_MESSAGE:
  75. $xmlReader->read();
  76. if ($xmlReader->nodeType == \XMLReader::TEXT)
  77. {
  78. $errorMessage = $xmlReader->value;
  79. }
  80. break;
  81. }
  82. break;
  83. case \XMLReader::END_ELEMENT:
  84. if ($xmlReader->name == 'Message')
  85. {
  86. if ($messageId != NULL)
  87. {
  88. return new SendMessageResponseItem(TRUE, $messageId, $messageBodyMD5);
  89. }
  90. else
  91. {
  92. return new SendMessageResponseItem(FALSE, $errorCode, $errorMessage);
  93. }
  94. }
  95. break;
  96. }
  97. }
  98. if ($messageId != NULL)
  99. {
  100. return new SendMessageResponseItem(TRUE, $messageId, $messageBodyMD5);
  101. }
  102. else
  103. {
  104. return new SendMessageResponseItem(FALSE, $errorCode, $errorMessage);
  105. }
  106. }
  107. }
  108. ?>