SMSService.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <?php
  2. namespace crmeb\services;
  3. /**
  4. * 短信服务
  5. * Class SMSService
  6. * @package crmeb\services
  7. */
  8. class SMSService
  9. {
  10. // 短信账号
  11. private static $SMSAccount;
  12. // 短信token
  13. private static $SMSToken;
  14. public static $status;
  15. // 短信请求地址
  16. private static $SMSUrl = 'https://sms.crmeb.net/api/';
  17. //短信支付回调地址
  18. private static $payNotify;
  19. const VERIFICATION_CODE = 518076;
  20. public function __construct()
  21. {
  22. self::$status = strlen(SystemConfigService::get('sms_account')) != 0 ?? false && strlen(SystemConfigService::get('sms_token')) != 0 ?? false;
  23. }
  24. private static function auto()
  25. {
  26. self::$SMSAccount = SystemConfigService::get('sms_account');
  27. self::$SMSToken = md5(self::$SMSAccount.md5(SystemConfigService::get('sms_token')));
  28. self::$payNotify = SystemConfigService::get('site_url').'/api/sms/pay/notify';
  29. }
  30. /**
  31. * 验证码接口
  32. * @return string
  33. */
  34. public static function code()
  35. {
  36. return self::$SMSUrl.'sms/captcha';
  37. }
  38. /**
  39. * 短信注册
  40. * @param $account
  41. * @param $password
  42. * @param $url
  43. * @param $phone
  44. * @param $code
  45. * @param $sign
  46. * @return mixed
  47. */
  48. public static function register($account, $password, $url, $phone, $code, $sign)
  49. {
  50. self::auto();
  51. $data['account'] = $account;
  52. $data['password'] = $password;
  53. $data['url'] = $url;
  54. $data['phone'] = $phone;
  55. $data['sign'] = $sign;
  56. $data['code'] = $code;
  57. return json_decode(HttpService::postRequest(self::$SMSUrl.'sms/register', $data), true);
  58. }
  59. /**
  60. * 公共短信模板列表
  61. * @param array $data
  62. * @return mixed
  63. */
  64. public static function publictemp(array $data)
  65. {
  66. self::auto();
  67. $data['account'] = self::$SMSAccount;
  68. $data['token'] = self::$SMSToken;
  69. return json_decode(HttpService::postRequest(self::$SMSUrl.'sms/publictemp', $data), true);
  70. }
  71. /**
  72. * 公共短信模板添加
  73. * @param $id
  74. * @param $tempId
  75. * @return mixed
  76. */
  77. public static function use($id, $tempId)
  78. {
  79. self::auto();
  80. $data['account'] = self::$SMSAccount;
  81. $data['token'] = self::$SMSToken;
  82. $data['id'] = $id;
  83. $data['tempId'] = $tempId;
  84. return json_decode(HttpService::postRequest(self::$SMSUrl.'sms/use', $data), true);
  85. }
  86. /**
  87. * 发送短信
  88. * @param $phone
  89. * @param $template
  90. * @param $param
  91. * @return bool|string
  92. */
  93. public static function send($phone, $template, array $param)
  94. {
  95. self::auto();
  96. $data['uid'] = self::$SMSAccount;
  97. $data['token'] = self::$SMSToken;
  98. $data['mobile'] = $phone;
  99. $data['template'] = $template;
  100. $data['param'] = json_encode($param);
  101. return json_decode(HttpService::postRequest(self::$SMSUrl.'sms/send', $data), true);
  102. }
  103. /**
  104. * 账号信息
  105. * @return mixed
  106. */
  107. public static function count()
  108. {
  109. self::auto();
  110. $data['account'] = self::$SMSAccount;
  111. $data['token'] = self::$SMSToken;
  112. return json_decode(HttpService::postRequest(self::$SMSUrl.'sms/userinfo', $data), true);
  113. }
  114. /**
  115. * 支付套餐
  116. * @param $page
  117. * @param $limit
  118. * @return mixed
  119. */
  120. public static function meal($page, $limit)
  121. {
  122. $data['page'] = $page;
  123. $data['limit'] = $limit;
  124. return json_decode(HttpService::getRequest(self::$SMSUrl.'sms/meal', $data), true);
  125. }
  126. /**
  127. * 支付码
  128. * @param $payType
  129. * @param $mealId
  130. * @param $price
  131. * @param $attach
  132. * @return mixed
  133. */
  134. public static function pay($payType, $mealId, $price, $attach)
  135. {
  136. self::auto();
  137. $data['uid'] = self::$SMSAccount;
  138. $data['token'] = self::$SMSToken;
  139. $data['payType'] = $payType;
  140. $data['mealId'] = $mealId;
  141. $data['notify'] = self::$payNotify;
  142. $data['price'] = $price;
  143. $data['attach'] = $attach;
  144. return json_decode(HttpService::postRequest(self::$SMSUrl.'sms/mealpay', $data), true);
  145. }
  146. /**
  147. * 申请模板消息
  148. * @param $title
  149. * @param $content
  150. * @param $type
  151. * @return mixed
  152. */
  153. public static function apply($title, $content, $type)
  154. {
  155. self::auto();
  156. $data['account'] = self::$SMSAccount;
  157. $data['token'] = self::$SMSToken;
  158. $data['title'] = $title;
  159. $data['content'] = $content;
  160. $data['type'] = $type;
  161. return json_decode(HttpService::postRequest(self::$SMSUrl.'sms/apply', $data), true);
  162. }
  163. /**
  164. * 短信模板列表
  165. * @param $data
  166. * @return mixed
  167. */
  168. public static function template($data)
  169. {
  170. self::auto();
  171. $data['account'] = self::$SMSAccount;
  172. $data['token'] = self::$SMSToken;
  173. return json_decode(HttpService::postRequest(self::$SMSUrl.'sms/template', $data), true);
  174. }
  175. }