AliYunSmsService.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. /**
  17. * Class YunxinSmsService
  18. * @package crmeb\services
  19. * @author xaboy
  20. * @day 2020-05-18
  21. */
  22. class AliYunSmsService
  23. {
  24. public function send($mobile, $code, $templateId = 'AUTHCODE')
  25. {
  26. if($templateId=='') $templateId = 'AUTHCODE';
  27. AlibabaCloud::accessKeyClient('LTAI5tPv49zdudnbTGExNKd3', 'nS7eFuPfI92i5h0MSvcAkpbyGsmkeF')
  28. ->regionId('cn-hangzhou')
  29. ->asDefaultClient();
  30. $templateParam['code'] = $code;
  31. switch ($templateId) {
  32. case 'AUTHCODE':
  33. $SignName = '一壶茶电子商务';
  34. $TemplateCode = 'SMS_294055127';
  35. $content = '【一壶茶电子商务】您的验证码是:' . $code;
  36. break;
  37. case 'ONESELFCARRY':
  38. $SignName = '一壶茶电子商务';
  39. $TemplateCode = 'SMS_465430830';
  40. $content = '【一壶茶电子商务】您购买的商品动态码(自提码)为' . $code . ',提货时请出示自提码!';
  41. break;
  42. case 'REDCHANGE':
  43. $SignName = '一壶茶电子商务';
  44. $TemplateCode = 'SMS_465371794';
  45. $content = '【一壶茶电子商务】您的短信验证码为' . $code . ',您正在人工调整红积分,如非本人操作,请忽略该短信。';
  46. break;
  47. case 'COMMISSIONCHANGE':
  48. $SignName = '一壶茶电子商务';
  49. $TemplateCode = 'SMS_465392073';
  50. $content = '【一壶茶电子商务】您的短信验证码为' . $code . ',您正在人工调整用户佣金,如非本人操作,请忽略该短信。';
  51. break;
  52. }
  53. try {
  54. $result = AlibabaCloud::rpc()
  55. ->product('Dysmsapi')
  56. ->version('2017-05-25')
  57. ->action('SendSms')
  58. ->method('POST')
  59. ->options([
  60. 'query' => [
  61. 'PhoneNumbers' => $mobile,
  62. 'SignName' => $SignName,
  63. 'TemplateCode' => $TemplateCode,//测试的
  64. // 'TemplateCode' => 'SMS_464451169',
  65. 'TemplateParam' => json_encode($templateParam),
  66. ],
  67. ])
  68. ->request();
  69. Db::name('sms_record')->insert(['phone' => $mobile, 'content' => $content, 'template' => $TemplateCode]);
  70. return $result->toArray();
  71. } catch (ClientException $e) {
  72. return ['code' => 500, 'message' => '阿里云短信客户端异常:' . $e->getErrorMessage()];
  73. } catch (ServerException $e) {
  74. return ['code' => 500, 'message' => '阿里云短信服务端异常:' . $e->getErrorMessage()];
  75. } catch (Exception $e) {
  76. return ['code' => 500, 'message' => '阿里云短信服务端异常:' . $e->getErrorMessage()];
  77. }
  78. }
  79. }