AliYunSmsService.php 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. /**
  3. * @package merchant
  4. *
  5. * @author xaboy
  6. * @day 2020-05-18
  7. *
  8. *
  9. */
  10. namespace crmeb\services;
  11. use AlibabaCloud\Client\AlibabaCloud;
  12. use Exception;
  13. use think\facade\Db;
  14. use GuzzleHttp\Exception\ClientException;
  15. use GuzzleHttp\Exception\ServerException;
  16. use think\facade\Log;
  17. /**
  18. * Class YunxinSmsService
  19. * @package crmeb\services
  20. * @author xaboy
  21. * @day 2020-05-18
  22. */
  23. class AliYunSmsService
  24. {
  25. public function send($mobile, $code, $templateId = 'AUTHCODE')
  26. {
  27. if($templateId=='') $templateId = 'AUTHCODE';
  28. // AlibabaCloud::accessKeyClient('LTAI5tPv49zdudnbTGExNKd3', 'nS7eFuPfI92i5h0MSvcAkpbyGsmkeF')
  29. // ->regionId('cn-hangzhou')
  30. // ->asDefaultClient();
  31. AlibabaCloud::accessKeyClient('LTAI5tKivJSckMYz5BHev3u8', 'nvetSdLB1YP7OgvpJcVeyhdJDVs4Ik')
  32. ->regionId('cn-hangzhou')
  33. ->asDefaultClient();
  34. $templateParam['code'] = $code;
  35. log::info("发送短信方法");
  36. switch ($templateId) {
  37. case 'AUTHCODE':
  38. $SignName = '融合华夏';
  39. $TemplateCode = 'SMS_311255692';
  40. $content = '【华夏幸福保】您的验证码是:' . $code;
  41. break;
  42. case 'ONESELFCARRY':
  43. $SignName = '华夏幸福保';
  44. $TemplateCode = 'SMS_465430830';
  45. $content = '【华夏幸福保】您购买的商品动态码(自提码)为' . $code . ',提货时请出示自提码!';
  46. break;
  47. case 'REDCHANGE':
  48. $SignName = '华夏幸福保';
  49. $TemplateCode = 'SMS_465371794';
  50. $content = '【华夏幸福保】您的短信验证码为' . $code . ',您正在人工调整红积分,如非本人操作,请忽略该短信。';
  51. break;
  52. case 'COMMISSIONCHANGE':
  53. $SignName = '华夏幸福保';
  54. $TemplateCode = 'SMS_465392073';
  55. $content = '【华夏幸福保】您的短信验证码为' . $code . ',您正在人工调整用户佣金,如非本人操作,请忽略该短信。';
  56. break;
  57. }
  58. try {
  59. $result = AlibabaCloud::rpc()
  60. ->product('Dysmsapi')
  61. ->version('2017-05-25')
  62. ->action('SendSms')
  63. ->method('POST')
  64. ->options([
  65. 'query' => [
  66. 'PhoneNumbers' => $mobile,
  67. 'SignName' => $SignName,
  68. 'TemplateCode' => $TemplateCode,//测试的
  69. // 'TemplateCode' => 'SMS_464451169',
  70. 'TemplateParam' => json_encode($templateParam),
  71. ],
  72. ])
  73. ->request();
  74. log::info("短信:返回参数");
  75. log::info($result);
  76. Db::name('sms_record')->insert(['phone' => $mobile, 'content' => $content, 'template' => $TemplateCode]);
  77. return $result->toArray();
  78. } catch (ClientException $e) {
  79. return ['code' => 500, 'message' => '阿里云短信客户端异常:' . $e->getErrorMessage()];
  80. } catch (ServerException $e) {
  81. return ['code' => 500, 'message' => '阿里云短信服务端异常:' . $e->getErrorMessage()];
  82. } catch (Exception $e) {
  83. return ['code' => 500, 'message' => '阿里云短信服务端异常:' . $e->getErrorMessage()];
  84. }
  85. }
  86. }