PopBaseHttpRequest.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace Com\Pdd\Pop\Sdk;
  3. /**
  4. * Pop request类
  5. */
  6. abstract class PopBaseHttpRequest extends PopBaseJsonEntity
  7. {
  8. private $timestamp;
  9. public function __construct()
  10. {
  11. }
  12. public function getTimestamp()
  13. {
  14. if ($this->timestamp == null) {
  15. $this->timestamp = time();
  16. }
  17. return $this->timestamp;
  18. }
  19. public abstract function getVersion();
  20. public abstract function getDataType();
  21. public abstract function getType();
  22. public final function getParamsMap()
  23. {
  24. $paramsMap = array();
  25. $paramsMap["version"] = $this->getVersion();
  26. $paramsMap["data_type"] = $this->getDataType();
  27. $paramsMap["type"] = $this->getType();
  28. $paramsMap["timestamp"] = $this->getTimestamp();
  29. $this->setUserParams($paramsMap);
  30. return $paramsMap;
  31. }
  32. protected abstract function setUserParams(&$var);
  33. protected final function setUserParam(&$paramMap, $name, $param)
  34. {
  35. if (!is_null($param)&&$param !== "") {
  36. if ($this->isPrimaryType($param)) {
  37. $paramMap[$name] = $param;
  38. } else {
  39. $paramMap[$name] = json_encode($param);
  40. }
  41. }
  42. }
  43. private function isPrimaryType($param)
  44. {
  45. if (is_bool($param)) {
  46. return true;
  47. } else if (is_integer($param)) {
  48. return true;
  49. } else if (is_long($param)) {
  50. return true;
  51. } else if (is_float($param)) {
  52. return true;
  53. } else if (is_double($param)) {
  54. return true;
  55. } else if (is_numeric($param)) {
  56. return true;
  57. } else {
  58. return is_string($param);
  59. }
  60. }
  61. }