sms_func.php 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. <?php
  2. if(file_exists($xjsms = DISCUZ_ROOT.'./data/sysdata/cache_xjsms.php')) {
  3. @include $xjsms;
  4. }
  5. function regsms(){
  6. global $username,$password,$realname,$mobile,$email;
  7. $return = '';
  8. $message = dfsockopen("http://xjsms.sinaapp.com/reg.php?act=save",0,"username=$username&password=$password&realname=$realname&mobile=$mobile&email=$email");
  9. $return = $message;
  10. //exit($message);
  11. return $return;
  12. }
  13. //获取短信余额
  14. function getsmsoverage(){
  15. global $_G,$xjsms;
  16. $return = '';
  17. $username = $xjsms['username'];
  18. $password = md5($xjsms['password']);
  19. $message = dfsockopen("http://xjsms.sinaapp.com/sms.php",0,"action=overage&username=$username&password=$password");
  20. $return = $message;
  21. return $return;
  22. }
  23. function xjsendsms($mobile = array(),$content,$sendtype = 'unknown',$sendtime = ''){
  24. global $_G,$xjsms;
  25. $username = $xjsms['username'];
  26. $password = md5($xjsms['password']);
  27. $content = $content.$xjsms['signature'];
  28. if($_G[charset]=='gbk'){
  29. $sendcontent = $content;
  30. }else{
  31. $sendcontent = diconv($content,'UTF-8','GBK');
  32. }
  33. $return = '';
  34. if(count($mobile)>0){
  35. $mobilestr = implode(",",$mobile);
  36. $message = dfsockopen("http://xjsms.sinaapp.com/sms.php",0,"action=send&username=$username&password=$password&mobile=".$mobilestr."&sendtime=".$sendtime."&content=".$sendcontent);
  37. $return = $message;
  38. }
  39. $sendlog = array();
  40. if($return == 'ok'){
  41. $sendlog['sendstate'] = 'success';
  42. }else{
  43. $sendlog['sendstate'] = $return;
  44. }
  45. $sendlog['uid'] = $_G['uid'];
  46. $sendlog['sendtype'] = lang('plugin/xj_event', 'test');
  47. $sendlog['sendcount'] = count($mobile);
  48. $sendlog['sendtime'] = $_G['timestamp'];
  49. $sendlog['sendcontent'] = $content;
  50. $sendlog['sendnumber'] = implode(',',$mobile);
  51. DB::insert('xj_event_sms_log',$sendlog);
  52. return $return;
  53. }
  54. function sendsms_vcode($mobile,$eventname,$number,$vcode){
  55. global $_G,$xjsms;
  56. $data['username'] = $xjsms['username'];
  57. $data['password'] = md5($xjsms['password']);
  58. $data['signature'] = $_G['charset']=='gbk'?iconv('gbk','utf-8',$xjsms['signature']):$xjsms['signature'];
  59. $data['mobile'] = $mobile;
  60. $data['eventname'] = $_G['charset']=='gbk'?iconv('gbk','utf-8',$eventname):$eventname;
  61. $data['number'] = $number;
  62. $data['vcode'] = $vcode;
  63. $data = json_encode($data);
  64. $return = postjson('http://xjsms.sinaapp.com/dayu_eventvcode.php',$data);
  65. $sendlog = array();
  66. if($return == 'ok'){
  67. $sendlog['sendstate'] = 'success';
  68. }else{
  69. $sendlog['sendstate'] = $return;
  70. }
  71. $sendlog['uid'] = $_G['uid'];
  72. $sendlog['sendtype'] = 'eventvcode';
  73. $sendlog['sendcount'] = 1;
  74. $sendlog['sendtime'] = $_G['timestamp'];
  75. $sendlog['sendcontent'] = $eventname.$vcode;
  76. $sendlog['sendnumber'] = $mobile;
  77. DB::insert('xj_event_sms_log',$sendlog);
  78. return $return;
  79. }
  80. function sendsms_success($mobile,$eventname,$eventtime){
  81. global $_G,$xjsms;
  82. $data['username'] = $xjsms['username'];
  83. $data['password'] = md5($xjsms['password']);
  84. $data['signature'] = $_G['charset']=='gbk'?iconv('gbk','utf-8',$xjsms['signature']):$xjsms['signature'];
  85. $data['mobile'] = $mobile;
  86. $data['eventname'] = $_G['charset']=='gbk'?iconv('gbk','utf-8',$eventname):$eventname;
  87. $data['eventtime'] = $eventtime;
  88. $data = json_encode($data);
  89. $return = postjson('http://xjsms.sinaapp.com/dayu_eventsuccess.php',$data);
  90. $sendlog = array();
  91. if($return == 'ok'){
  92. $sendlog['sendstate'] = 'success';
  93. }else{
  94. $sendlog['sendstate'] = $return;
  95. }
  96. $sendlog['uid'] = $_G['uid'];
  97. $sendlog['sendtype'] = 'eventsuccess';
  98. $sendlog['sendcount'] = 1;
  99. $sendlog['sendtime'] = $_G['timestamp'];
  100. $sendlog['sendcontent'] = $eventname;
  101. $sendlog['sendnumber'] = $mobile;
  102. DB::insert('xj_event_sms_log',$sendlog);
  103. return $return;
  104. }
  105. function sendsms_notice($mobile,$eventname,$eventtime){
  106. global $_G,$xjsms;
  107. //过滤不是手机号的
  108. $tmp = explode(',',$mobile);
  109. foreach($tmp as $key => $value){
  110. if(ismobilenumber($value) == false){
  111. unset($tmp[$key]);
  112. }
  113. }
  114. if(count($tmp)<1){
  115. return 'nomobile';
  116. }
  117. $mobile = implode(',',$tmp);
  118. $data['username'] = $xjsms['username'];
  119. $data['password'] = md5($xjsms['password']);
  120. $data['signature'] = $xjsms['signature'];
  121. $data['signature'] = $_G['charset']=='gbk'?iconv('gbk','utf-8',$data['signature']):$data['signature'];
  122. $data['mobile'] = $mobile;
  123. $data['eventname'] = $_G['charset']=='gbk'?iconv('gbk','utf-8',$eventname):$eventname;
  124. $data['eventtime'] = $eventtime;
  125. $data = json_encode($data);
  126. $return = postjson('http://xjsms.sinaapp.com/dayu_eventnotice.php',$data);
  127. $sendlog = array();
  128. if($return == 'ok'){
  129. $sendlog['sendstate'] = 'success';
  130. }else{
  131. $sendlog['sendstate'] = $return;
  132. }
  133. $mobile = explode(',',$mobile);
  134. $sendlog['uid'] = $_G['uid'];
  135. $sendlog['sendtype'] = 'notice';
  136. $sendlog['sendcount'] = count($mobile);
  137. $sendlog['sendtime'] = $_G['timestamp'];
  138. $sendlog['sendcontent'] = $eventname.$eventtime;
  139. $sendlog['sendnumber'] = count($mobile);
  140. DB::insert('xj_event_sms_log',$sendlog);
  141. $return = iconv('utf-8','gbk',$return);
  142. return $return;
  143. }
  144. function sendsms_notice_hnmm($mobile,$eventname,$eventtime,$address,$editor,$editorphone){
  145. global $_G,$xjsms;
  146. //过滤不是手机号的
  147. $tmp = explode(',',$mobile);
  148. foreach($tmp as $key => $value){
  149. if(ismobilenumber($value) == false){
  150. unset($tmp[$key]);
  151. }
  152. }
  153. if(count($tmp)<1){
  154. return 'nomobile';
  155. }
  156. $mobile = implode(',',$tmp);
  157. $data['username'] = $xjsms['username'];
  158. $data['password'] = md5($xjsms['password']);
  159. $data['signature'] = $xjsms['signature'];
  160. $data['signature'] = $_G['charset']=='gbk'?iconv('gbk','utf-8',$data['signature']):$data['signature'];
  161. $data['mobile'] = $mobile;
  162. $data['eventname'] = $_G['charset']=='gbk'?iconv('gbk','utf-8',$eventname):$eventname;
  163. $data['eventtime'] = $eventtime;
  164. $data['address'] = $_G['charset']=='gbk'?iconv('gbk','utf-8',$address):$address;
  165. $data['editor'] = $_G['charset']=='gbk'?iconv('gbk','utf-8',$editor):$editor;
  166. $data['editorphone'] = $editorphone;
  167. $data = json_encode($data);
  168. $return = postjson('http://xjsms.applinzi.com/dayu_eventnotice_hnmm.php',$data);
  169. $sendlog = array();
  170. if($return == 'ok'){
  171. $sendlog['sendstate'] = 'success';
  172. }else{
  173. $sendlog['sendstate'] = $return;
  174. }
  175. $mobile = explode(',',$mobile);
  176. $sendlog['uid'] = $_G['uid'];
  177. $sendlog['sendtype'] = 'notice';
  178. $sendlog['sendcount'] = count($mobile);
  179. $sendlog['sendtime'] = $_G['timestamp'];
  180. $sendlog['sendcontent'] = $eventname.$eventtime;
  181. $sendlog['sendnumber'] = count($mobile);
  182. DB::insert('xj_event_sms_log',$sendlog);
  183. //$return = iconv('utf-8','gbk',$return);
  184. return $return;
  185. }
  186. function sendsms_notice_yhd($mobile,$eventname,$starttime,$address,$tel){
  187. global $_G,$xjsms;
  188. //过滤不是手机号的
  189. $tmp = explode(',',$mobile);
  190. foreach($tmp as $key => $value){
  191. if(ismobilenumber($value) == false){
  192. unset($tmp[$key]);
  193. }
  194. }
  195. if(count($tmp)<1){
  196. return 'nomobile';
  197. }
  198. $mobile = implode(',',$tmp);
  199. $data['username'] = $xjsms['username'];
  200. $data['password'] = md5($xjsms['password']);
  201. $data['signature'] = $xjsms['signature'];
  202. $data['signature'] = $_G['charset']=='gbk'?iconv('gbk','utf-8',$data['signature']):$data['signature'];
  203. $data['mobile'] = $mobile;
  204. $data['eventname'] = $_G['charset']=='gbk'?iconv('gbk','utf-8',$eventname):$eventname;
  205. $data['starttime'] = $starttime;
  206. $data['address'] = $_G['charset']=='gbk'?iconv('gbk','utf-8',$address):$address;
  207. $data['tel'] = $tel;
  208. $data = json_encode($data);
  209. $return = postjson('http://xjsms.applinzi.com/dayu_eventnotice_yhd.php',$data);
  210. $sendlog = array();
  211. if($return == 'ok'){
  212. $sendlog['sendstate'] = 'success';
  213. }else{
  214. $sendlog['sendstate'] = $return;
  215. }
  216. $mobile = explode(',',$mobile);
  217. $sendlog['uid'] = $_G['uid'];
  218. $sendlog['sendtype'] = 'notice';
  219. $sendlog['sendcount'] = count($mobile);
  220. $sendlog['sendtime'] = $_G['timestamp'];
  221. $sendlog['sendcontent'] = $eventname.$starttime;
  222. $sendlog['sendnumber'] = count($mobile);
  223. DB::insert('xj_event_sms_log',$sendlog);
  224. //$return = iconv('utf-8','gbk',$return);
  225. return $return;
  226. }
  227. function postjson($url,$data){
  228. $ch = curl_init($url);
  229. curl_setopt($ch, CURLOPT_MUTE, 1);
  230. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  231. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  232. curl_setopt($ch, CURLOPT_POST, 1);
  233. curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/json'));
  234. curl_setopt($ch, CURLOPT_POSTFIELDS, "$data");
  235. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  236. $output = curl_exec($ch);
  237. curl_close($ch);
  238. return $output;
  239. }
  240. //判断是否手机号
  241. function ismobilenumber($phonenumber){
  242. if(preg_match("/1[23456789]{1}\d{9}$/",$phonenumber)){
  243. return true;
  244. }else{
  245. return false;
  246. }
  247. }
  248. ?>