LxSms.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace app\common\modules\sms\factory;
  3. use app\common\modules\sms\Sms;
  4. use Yunshop\LxSms\services\LxSmsService;
  5. class LxSms extends Sms
  6. {
  7. public function _sendCode($mobile, $state, $ext = null)
  8. {
  9. if (!$ext) {
  10. $ext = [];
  11. }
  12. $code = $this->getCode($mobile,$this->key);
  13. switch ($this->template) {
  14. case 'register':
  15. $content = $this->sms['lx_templateCode'];
  16. $ext = array_merge($ext, ['number' => $code]);
  17. break;
  18. case 'password':
  19. $content = $this->sms['lx_templateCodeForget'];
  20. $ext = array_merge($ext, ['number' => $code]);
  21. break;
  22. case 'login':
  23. if (empty($this->sms['lx_templateCodeLogin'])) {
  24. $content = $this->sms['lx_templateCode'];
  25. } else {
  26. $content = $this->sms['lx_templateCodeLogin'];
  27. }
  28. $ext = array_merge($ext, ['number' => $code]);
  29. break;
  30. case 'balance':
  31. $content = $this->sms['lx_templateBalanceCode'];
  32. break;
  33. case 'member_recharge':
  34. $content = $this->sms['lx_templatereChargeCode'];
  35. break;
  36. case 'goods':
  37. $content = $this->sms['lx_templateSendMessageCode'];
  38. break;
  39. case 'withdraw_set':
  40. $content = $this->sms['lx_templateCode'];
  41. $ext = array_merge($ext, ['number' => $code]);
  42. break;
  43. default:
  44. return '短信发送失败:未知短信类型';
  45. }
  46. try {
  47. if (!app('plugins')->isEnabled('lx-sms')) {
  48. throw new \Exception('未开启验证码,请联系管理员!');
  49. }
  50. $data = [
  51. 'sendPhone' => $mobile,
  52. 'accName' => $this->sms['acc_name'],
  53. 'accPwd' => $this->sms['acc_pwd'],
  54. 'msg' => $this->changeContent(trim($content), $ext).'【' . $this->sms['lx_sign'] . '】',
  55. ];
  56. $sms = new LxSmsService();
  57. $res = $sms->send($data);
  58. if ($res['replyCode'] != 1) {
  59. throw new \Exception($res['replyMsg']);
  60. }
  61. return true;
  62. } catch (\Exception $e) {
  63. return $e->getMessage();
  64. }
  65. }
  66. private function changeContent($content, $ext)
  67. {
  68. if (strexists($content, '[number]') && $ext['number']) {
  69. $content = str_replace('[number]', $ext['number'], $content);
  70. }
  71. if (strexists($content, '[preshop]') && $ext['preshop']) {
  72. $content = str_replace('[preshop]', $ext['preshop'], $content);
  73. }
  74. if (strexists($content, '[endshop]') && $ext['endshop']) {
  75. $content = str_replace('[endshop]', $ext['endshop'], $content);
  76. }
  77. if (strexists($content, '[amount]') && $ext['amount']) {
  78. $content = str_replace('[amount]', $ext['amount'], $content);
  79. }
  80. if (strexists($content, '[amounts]') && $ext['amounts']) {
  81. $content = str_replace('[amounts]', $ext['amounts'], $content);
  82. }
  83. if (strexists($content, '[date]') && $ext['date']) {
  84. $content = str_replace('[date]', $ext['date'], $content);
  85. }
  86. if (strexists($content, '[name]') && $ext['name']) {
  87. $content = str_replace('[name]', $ext['name'], $content);
  88. }
  89. if (strexists($content, '[time]') && $ext['time']) {
  90. $content = str_replace('[time]', $ext['time'], $content);
  91. }
  92. if (strexists($content, '[shop]') && $ext['shop']) {
  93. $content = str_replace('[shop]', $ext['shop'], $content);
  94. }
  95. return $content;
  96. }
  97. }