Expedite.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <?php
  2. namespace app\api\controller;
  3. use AlibabaCloud\Client\AlibabaCloud;
  4. use AlibabaCloud\Client\Exception\ClientException;
  5. use AlibabaCloud\Client\Exception\ServerException;
  6. use app\common\model\StoreBanner;
  7. use app\common\model\UserLevel;
  8. use app\common\model\UserTrack;
  9. use think\Db;
  10. /**
  11. * @title 不需要验证token接口(商品列表等)
  12. * @controller Expedite
  13. * @package app\api\controller
  14. */
  15. class Expedite extends Base
  16. {
  17. public function initialize(){
  18. parent::initialize();
  19. parent::setUid();
  20. }
  21. /**
  22. * @title 获取首页轮播图
  23. * @desc 获取首页轮播图
  24. * @author qc
  25. * @url /api/Expedite/getBanner
  26. * @method GET
  27. * @header name:Authorization require:1 desc:Token
  28. * @param name:place type:int default:1 desc:展示位置1视频首页
  29. * @param name:num type:int default:5 desc:查询数量
  30. * @return name:cover type:srting default:-- desc:图片路径
  31. * @return name:link type:srting default:-- desc:链接
  32. */
  33. public function getBanner()
  34. {
  35. $num = input('get.num',5);
  36. $place = input('get.place',1);
  37. $list = StoreBanner::field('id,cover,link')
  38. ->where(['is_deleted'=>0,'place'=>$place])->limit(0,$num)
  39. ->order('sort desc ,id desc')->select()->toArray();
  40. $this->success('ok',['list'=>$list]);
  41. }
  42. /**
  43. * @title 获取会员等级设置
  44. * @desc 获取会员等级设置
  45. * @author qc
  46. * @url /api/Expedite/getUserLevelSet
  47. * @method GET
  48. * @header name:Authorization require:1 desc:Token
  49. * @return name:id type:int default:-- desc:等级id
  50. * @return name:name type:string default:-- desc:等级名称
  51. * @return name:logo type:string default:-- desc:图片
  52. * @return name:price type:array default:-- desc:价格设置【为空,,不能购买】
  53. * @return name:price.title type:string default:-- desc:标题
  54. * @return name:price.time type:string default:-- desc:时间(单位月)
  55. * @return name:price.price type:float default:-- desc:价格
  56. */
  57. public function getUserLevelSet()
  58. {
  59. $list = UserLevel::field('id,logo,name,price')->where("price is not null and price != ''")->select()->toArray();
  60. $this->success('ok',['list'=>$list]);
  61. }
  62. /**
  63. * @title 发送短信验证码
  64. * @desc 发送短信验证码
  65. * @author qc
  66. * @url /api/General/sendSms
  67. * @method POST
  68. * @tag 短信验证码
  69. * @param name:phone type:int require:1 default:-- desc:要获取验证码的手机号
  70. * @return name:code type:string default:-- desc:验证码
  71. */
  72. public function sendSms(){
  73. $phone = input('post.phone');
  74. if(empty($phone)) $this ->error('参数错误');
  75. $code = rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9);
  76. AlibabaCloud::accessKeyClient('LTAI5tEEfowhMkLu8auo6n6G', 'ch94CL3TEwNAxXNREweZl3gfk8jQ84')
  77. ->regionId('cn-hangzhou')->asDefaultClient();
  78. try {
  79. $result = AlibabaCloud::rpc()
  80. ->product('Dysmsapi')
  81. ->version('2017-05-25')
  82. ->action('SendSms')
  83. ->method('POST')
  84. ->host('dysmsapi.aliyuncs.com')
  85. ->options([
  86. 'query' => [
  87. 'RegionId' => "cn-hangzhou",
  88. 'PhoneNumbers' => $phone,
  89. 'SignName' => "康养食品",
  90. 'TemplateCode' => "SMS_241155218",
  91. 'TemplateParam' => json_encode(array("code"=>$code)),
  92. ],
  93. ])->request();
  94. $result = $result->toArray();
  95. if($result['Code'] == "OK") {
  96. $sms_data = array(
  97. 'phone'=>$phone,
  98. 'code'=>$code,
  99. 'result'=>$result['Message']
  100. );
  101. Db::name('store_member_sms')->insert($sms_data);
  102. $this->success('发送成功',$code);
  103. }else{
  104. $this->error('发送失败');
  105. }
  106. } catch (ClientException $e) {
  107. echo $e->getErrorMessage() . PHP_EOL;
  108. } catch (ServerException $e) {
  109. echo $e->getErrorMessage() . PHP_EOL;
  110. }
  111. }
  112. /**
  113. * @title 发送邮箱验证码
  114. * @desc 发送邮箱验证码
  115. * @author qc
  116. * @url /api/General/emailSms
  117. * @method POST
  118. * @tag 邮箱验证码
  119. * @param name:email type:int require:1 default:-- desc:邮箱
  120. * @return name:code type:string default:-- desc:验证码
  121. */
  122. function emailSms(){
  123. $email = input('post.email');
  124. $code = rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9);
  125. require_once env('root_path').'/vendor/aliyunmail/aliyun-php-sdk-core/Config.php';
  126. //需要设置对应的region名称,如华东1(杭州)设为cn-hangzhou,新加坡Region设为ap-southeast-1,澳洲Region设为ap-southeast-2。
  127. $iClientProfile = \DefaultProfile::getProfile("ap-southeast-1", "LTAI5tA1MvqQFWkFRnsaqeoV", "rF6loLdOxFF8FQJtjD4TQKhBGR3WY0");
  128. $iClientProfile::addEndpoint("ap-southeast-1","ap-southeast-1","Dm","dm.ap-southeast-1.aliyuncs.com");
  129. $client = new DefaultAcsClient($iClientProfile);
  130. $request = new Dm\SingleSendMailRequest();
  131. $request->setAccountName("mmg@daydayu.com");
  132. $request->setFromAlias("[Seek Yeah]");
  133. $request->setAddressType(1);
  134. $request->setTagName("DayDayU");
  135. $request->setReplyToAddress("true");
  136. $request->setToAddress($email);
  137. $request->setSubject("[Seek Yeah]验证码");
  138. $html_body = '验证码:'.$code;
  139. $request->setHtmlBody($html_body);
  140. try {
  141. $client->getAcsResponse($request);
  142. $sms_data = array(
  143. 'phone'=>$email,
  144. 'code'=>$code,
  145. 'result'=>'OK'
  146. );
  147. Db::name('store_member_sms')->insert($sms_data);
  148. $this->success('发送成功');
  149. } catch (ClientException $e) {
  150. $this->error($e->getErrorMessage());
  151. // print_r($e->getErrorCode());
  152. // print_r($e->getErrorMessage());
  153. } catch (ServerException $e) {
  154. $this->error($e->getErrorMessage());
  155. // print_r($e->getErrorCode());
  156. // print_r($e->getErrorMessage());
  157. }
  158. }
  159. }