MessageSms.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?php
  2. namespace app\model;
  3. use AlibabaCloud\Client\AlibabaCloud;
  4. use AlibabaCloud\Client\Exception\ClientException;
  5. use AlibabaCloud\Client\Exception\ServerException;
  6. class MessageSms
  7. {
  8. public static function itional_pay($orderInfo)
  9. {
  10. $param['uuid'] = OrderStaff::getuuid($orderInfo['id']);
  11. $param['uid'] = UuidRelation::getuid($param['uuid']);
  12. $param['title'] = '客户已支付尾款通知';
  13. $param['pages'] = '/pagesA/my/admintechnical/orderDetail';
  14. $param['query'] = 'id=' . $orderInfo['id'];
  15. self::sendsmsmessage($param);
  16. }
  17. //派单
  18. public static function distribution($uuid, $orderInfo)
  19. {
  20. $param['uuid'] = $uuid;
  21. $param['uid'] = UuidRelation::getuid($param['uuid']);
  22. $param['title'] = '平台派单通知';
  23. $param['pages'] = '/pagesA/my/admintechnical/orderDetail';
  24. $param['query'] = 'id=' . $orderInfo['id'];
  25. self::sendsmsmessage($param);
  26. }
  27. public static function storeOrderPay($sid, $orderInfo)
  28. {
  29. $param['uuid'] = Store::getUuid($sid);
  30. $param['uid'] = UuidRelation::getuid($param['uuid']);
  31. $param['title'] = '店铺订单通知';
  32. $param['content'] = '您有一个新的订单,请及时处理';
  33. $param['pages'] = '/pagesA/my/adminstore/orderDetail';
  34. $param['query'] = 'id=' . $orderInfo['id'];
  35. self::sendsmsmessage($param);
  36. }
  37. public static function undertake($orderInfo)
  38. {
  39. $technicalConfig = Config::getconfig('technical');
  40. if ($technicalConfig['is_pickuporder'] == 1) {
  41. $Technical = Technical::gelist_bycitycate($orderInfo);
  42. if (!empty($Technical)) {
  43. foreach ($Technical as $vo) {
  44. $param['uid'] = $vo['uid'];
  45. if (empty($param['uid'])) {
  46. $param['uid'] = UuidRelation::getuid($vo['uuid']);
  47. }
  48. $param['uuid'] = $vo['uuid'];
  49. $param['title'] = '平台推荐单通知';
  50. $param['pages'] = '/pagesA/my/publicOrder/order';
  51. self::sendsmsmessage($param);
  52. }
  53. }
  54. }
  55. }
  56. public static function orderPayNoticeAdmin($orderInfo)
  57. {
  58. $where['weid'] = weid();
  59. $where['sid'] = 0;
  60. $query = Users::where($where);
  61. $query->where('role_id', 'in', UsersRoles::getadminids());
  62. $query->whereNotNull('uuid');
  63. $query->where('uuid', '<>', '');
  64. $adminlist = $query->select()->toArray();
  65. //var_dump($query->getLastsql());
  66. if (!empty($adminlist)) {
  67. foreach ($adminlist as $vo) {
  68. $param['uid'] = UuidRelation::getuid($vo['uuid']);
  69. $param['uuid'] = $vo['uuid'];
  70. $param['title'] = '订单支付成功';
  71. $param['pages'] = '/pagesA/my/admin/orderDetail';
  72. $param['query'] = 'id=' . $orderInfo['id'];
  73. self::sendsmsmessage($param);
  74. }
  75. }
  76. }
  77. public static function sendsmsmessage($param)
  78. {
  79. $weid = weid();
  80. $miniConfig = Config::getconfig('miniprogram');
  81. if (empty($miniConfig['app_id'])) {
  82. $smslink = gethost() . scriptPath() . '/h5/?i=' . $weid . '#/' . $param['pages'] . '?' . $param['query'];
  83. } else {
  84. $retlink = \app\samos\wechat\MiniProgram::urllink([
  85. 'path' => $param['pages'],
  86. 'query' => $param['query']
  87. ]);
  88. $smslink = $retlink['url_link'];
  89. }
  90. $phone = Technical::getTel($param['uuid']);
  91. if (!empty($phone)) {
  92. @$res = MessageSms::send_sms([
  93. 'phone' => $phone,
  94. 'param' => json_encode([
  95. 'customer' => "您有一个新的平台订单,请及时处理" . $smslink
  96. ])
  97. ]);
  98. Test::create(['title' => '发手机短信', 'info' => serialize($res)]);
  99. }
  100. }
  101. /**
  102. * 发送短信
  103. * @param $AccessKeyId
  104. * @param $Secret
  105. * @param $params
  106. * @return bool
  107. * @throws ClientException
  108. */
  109. static function send_sms($params)
  110. {
  111. if (empty($params['phone'])) {
  112. return false;
  113. }
  114. $smsConfig = Config::getconfig('sms');
  115. if (empty($smsConfig['status']) || empty($smsConfig['AccessKeyId'])) {
  116. return false;
  117. }
  118. // 创建客户端
  119. AlibabaCloud::accessKeyClient(trim($smsConfig['AccessKeyId']), trim($smsConfig['Secret']))
  120. ->regionId('cn-hangzhou')
  121. ->asDefaultClient();
  122. try {
  123. $result = AlibabaCloud::rpc()
  124. ->product('Dysmsapi')
  125. ->version('2017-05-25')
  126. ->action('SendSms')
  127. ->host('dysmsapi.aliyuncs.com')
  128. ->options([
  129. // 这里的参数可以在openAPI Explorer里面查看
  130. 'query' => [
  131. 'RigionId' => 'cn_hangzhou',
  132. 'PhoneNumbers' => $params['phone'], // 输入的手机号
  133. 'SignName' => trim($smsConfig['SignName']), // 签名信息
  134. 'TemplateCode' => trim($smsConfig['TemplateCode']), // 短信模板id
  135. 'TemplateParam' => $params['param'] // 可选,模板变量值,json格式
  136. ]
  137. ])
  138. ->request();
  139. //print_r($result->toArray());
  140. Test::create(['title' => '手机短信', 'info' => serialize($result->toArray())]);
  141. return $result->toArray();
  142. } catch (ClientException $e) {
  143. return $e->getErrorMessage() . PHP_EOL;
  144. } catch (ServerException $e) {
  145. return $e->getErrorMessage() . PHP_EOL;
  146. }
  147. }
  148. }