VideoAuth.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: VideoAuth.php 28833 2012-03-14 08:42:59Z yexinhao $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class Cloud_Service_Server_VideoAuth extends Cloud_Service_Server_Restful {
  12. protected static $_instance;
  13. public static function getInstance() {
  14. if (!(self::$_instance instanceof self)) {
  15. self::$_instance = new self();
  16. }
  17. return self::$_instance;
  18. }
  19. public function onVideoAuthSetAuthStatus($uId, $status) {
  20. if ($status == 'approved') {
  21. $status = 1;
  22. updatecreditbyaction('videophoto', $uId);
  23. } else if($status == 'refused') {
  24. $status = 0;
  25. } else {
  26. $errCode = '200';
  27. $errMessage = 'Error arguments';
  28. return new Cloud_Service_Server_ErrorResponse($errCode, $errMessage);
  29. }
  30. $result = C::t('common_member')->update($uId, array('videophotostatus' => $status));
  31. $memberVerify = C::t('common_member_verify')->fetch($uId);
  32. if(!$memberVerify) {
  33. C::t('common_member_verify')->insert(array('uid' => $uId, 'verify7' => $status));
  34. } else {
  35. C::t('common_member_verify')->update($uId, array('verify7' => $status));
  36. }
  37. return $result;
  38. }
  39. public function onVideoAuthAuth($uId, $picData, $picExt = 'jpg', $isReward = false) {
  40. global $_G;
  41. $res = $this->getUserSpace($uId);
  42. if (!$res) {
  43. return new Cloud_Service_Server_ErrorResponse('1', "User($uId) Not Exists");
  44. }
  45. $allowPicType = array('jpg','jpeg','gif','png');
  46. if(in_array($picExt, $allowPicType)) {
  47. $pic = base64_decode($picData);
  48. if (!$pic || strlen($pic) == strlen($picData)) {
  49. $errCode = '200';
  50. $errMessage = 'Error argument';
  51. return new Cloud_Service_Server_ErrorResponse($errCode, $errMessage);
  52. }
  53. $secret = md5($_G['timestamp']."\t".$_G['uid']);
  54. $picDir = DISCUZ_ROOT . './data/avatar/' . substr($secret, 0, 1);
  55. if (!is_dir($picDir)) {
  56. if (!mkdir($picDir, 0777)) {
  57. $errCode = '300';
  58. $errMessage = 'Cannot create directory';
  59. return new Cloud_Service_Server_ErrorResponse($errCode, $errMessage);
  60. }
  61. }
  62. $picDir .= '/' . substr($secret, 1, 1);
  63. if (!is_dir($picDir)) {
  64. if (!@mkdir($picDir, 0777)) {
  65. $errCode = '300';
  66. $errMessage = 'Cannot create directory';
  67. return new Cloud_Service_Server_ErrorResponse($errCode, $errMessage);
  68. }
  69. }
  70. $picPath = $picDir . '/' . $secret . '.' . $picExt;
  71. $fp = @fopen($picPath, 'wb');
  72. if ($fp) {
  73. if (fwrite($fp, $pic) !== FALSE) {
  74. fclose($fp);
  75. $upload = new discuz_upload();
  76. if(!$upload->get_image_info($picPath)) {
  77. @unlink($picPath);
  78. } else {
  79. C::t('common_member')->update($uId, array('videophotostatus' => 1));
  80. $memberVerify = C::t('common_member_verify')->fetch($uId);
  81. if(!$memberVerify) {
  82. C::t('common_member_verify')->insert(array('uid' => $uId, 'verify7' => 1));
  83. } else {
  84. C::t('common_member_verify')->update($uId, array('verify7' => 1));
  85. }
  86. $fields = array('videophoto' => $secret);
  87. $result = C::t('common_member_field_home')->update($uId, $fields);
  88. if ($isReward) {
  89. updatecreditbyaction('videophoto', $uId);
  90. }
  91. return $result;
  92. }
  93. }
  94. fclose($fp);
  95. }
  96. }
  97. $errCode = '300';
  98. $errMessage = 'Video Auth Error';
  99. return new Cloud_Service_Server_ErrorResponse($errCode, $errMessage);
  100. }
  101. }