NewSMSService.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. namespace crmeb\services;
  3. use think\facade\Db;
  4. /**
  5. * 短信服务
  6. * Class SMSService
  7. * @package crmeb\services
  8. */
  9. class NewSMSService
  10. {
  11. //验证码
  12. const VERIFICATION_CODE = 518076;
  13. //支付成功
  14. const PAY_SUCCESS_CODE = 520268;
  15. //发货提醒
  16. const DELIVER_GOODS_CODE = 520269;
  17. //确认收货提醒
  18. const TAKE_DELIVERY_CODE = 520271;
  19. //管理员下单提醒
  20. const ADMIN_PLACE_ORDER_CODE = 520272;
  21. //管理员退货提醒
  22. const ADMIN_RETURN_GOODS_CODE = 520274;
  23. //管理员支付成功提醒
  24. const ADMIN_PAY_SUCCESS_CODE = 520273;
  25. //管理员确认收货
  26. const ADMIN_TAKE_DELIVERY_CODE = 520422;
  27. /**
  28. * get: 发送短信验证码
  29. * path: sendSmsCode
  30. * method: sendSmsCode
  31. * param: phone - {string} 手机号
  32. */
  33. public static function send($phone, array $param, $template = "DEFAULT")
  34. {
  35. $code = $param['code'];
  36. $target = 'http://www.qunfaduanxin.vip/api/send';
  37. // $target = "http://cf.51welink.com/submitdata/Service.asmx/g_Submit";
  38. $company = '优交所';
  39. switch ($template) {
  40. case 'REGISTER':
  41. $content = sprintf('【%s】您的注册验证码为:%d 。验证码有效期为%d分钟,请尽快填写!', $company, $code, 5);
  42. break;
  43. case 'LOGIN':
  44. $content = sprintf('【%s】您的登录验证码为:%d 。验证码有效期为%d分钟,请尽快填写!', $company, $code, 5);
  45. break;
  46. case 'RESET':
  47. $content = sprintf('【%s】您正在修改登陆密码,验证码为:%d 。验证码%d分钟内有效,如非本人操作请忽略!', $company, $code, 5);
  48. break;
  49. case 'RESET_2':
  50. $content = sprintf('【%s】您正在修改交易密码,验证码为:%d 。验证码%d分钟内有效,如非本人操作请忽略!', $company, $code, 5);
  51. break;
  52. case 'TRADE':
  53. $content = sprintf('【%s】您正在进行大额交易,验证码为:%d 。验证码%d分钟内有效,如非本人操作请忽略!', $company, $code, 5);
  54. break;
  55. case 'START_TRADE':
  56. $content = sprintf('【%s】你的购买订单已经有卖家接单,请及时查看处理,并在15分钟内完成付款。', $company);
  57. break;
  58. case 'END_TRADE':
  59. $content = sprintf('【%s】你的出售订单买家成功向你付款,请及时确认并放行。', $company);
  60. break;
  61. case 'SUCCESS_TRADE':
  62. $content = sprintf('【%s】你的出售订单系统已付款,请确认,如有疑问请联系客服。', $company);
  63. break;
  64. case 'RECHARGE':
  65. $content = sprintf('【%s】您已成功充值%s,请查收。', $company, $param['mark']);
  66. break;
  67. case 'EXTRACT':
  68. $content = sprintf('【%s】您的提币申请已通过,请查收。', $company);
  69. break;
  70. case 'EXTRACT_FAIL':
  71. $content = sprintf('【%s】您的提币申请已被驳回,驳回原因:%s,请尽快查看并处理', $company, $param['mark']);
  72. break;
  73. default:
  74. $content = sprintf('您的验证码为:%d 。验证码有效期为%d分钟,请尽快填写!【%s】', $code, 1, $company);
  75. break;
  76. }
  77. // $post_data = "sname=dlycwl01&spwd=ycwl123456&scorpid=&sprdid=1012818&sdst=" . $phone . "&smsg=" . rawurlencode($content);
  78. $post_data = "?username=16520929823&password=" . strtoupper(md5('6520929823')) . "&gwid=c2i00vx1&mobile=" . $phone . "&message=" . $content;
  79. // $gets = self::post($post_data, $target);
  80. var_dump($target . $post_data);
  81. $gets = do_request($target . $post_data, []);
  82. var_dump($gets);
  83. @file_put_contents('sms.log', json_encode($gets), FILE_APPEND);
  84. if ($gets) {
  85. return ['status' => 200, 'msg' => '短信发送成功'];
  86. } else {
  87. return ['status' => 400, 'msg' => '发送失败'];
  88. }
  89. }
  90. // //第三方短信平台
  91. // private static function post($data, $target)
  92. // {
  93. // $url_info = parse_url($target);
  94. // $httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n";
  95. // $httpheader .= "Host:" . $url_info['host'] . "\r\n";
  96. // $httpheader .= "Content-Type:application/x-www-form-urlencoded\r\n";
  97. // $httpheader .= "Content-Length:" . strlen($data) . "\r\n";
  98. // $httpheader .= "Connection:close\r\n\r\n";
  99. // //$httpheader .= "Connection:Keep-Alive\r\n\r\n";
  100. // $httpheader .= $data;
  101. //
  102. // $fd = fsockopen($url_info['host'], 80);
  103. // fwrite($fd, $httpheader);
  104. // $gets = "";
  105. // while (!feof($fd)) {
  106. // $gets .= fread($fd, 128);
  107. // }
  108. // fclose($fd);
  109. // if ($gets != '') {
  110. // $start = strpos($gets, '<?xml');
  111. // if ($start > 0) {
  112. // $gets = substr($gets, $start);
  113. // }
  114. // }
  115. // return $gets;
  116. // }
  117. }