-
環境准備
-
安裝composer並切換到阿里雲源
-
cd到項目根目錄
-
根據阿里雲示例安裝 composer require alibabacloud/smsintl
-
直接在api/controller/common源碼里引用
-
use AlibabaCloud\Client\AlibabaCloud; use AlibabaCloud\Client\Exception\ClientException; use AlibabaCloud\Client\Exception\ServerException; public function smsaliyun(){ $req = $this->request->param(); $vali = $this->validate($req, [ 'mobile' => 'require|integer', 'code' => 'require|integer', ]); if (true !== $vali) { $this->error('參數錯誤', $vali); } AlibabaCloud::accessKeyClient('akey', 'skey') ->regionId('cn-hangzhou') ->asDefaultClient(); try { $result = AlibabaCloud::rpc() ->product('Dysmsapi') // ->scheme('https') // https | http ->version('2017-05-25') ->action('SendSms') ->method('POST') ->host('dysmsapi.aliyuncs.com') ->options([ 'query' => [ 'RegionId' => "cn-hangzhou", 'PhoneNumbers' => $req['mobile'], 'SignName' => "掌上醫堂", 'TemplateCode' => "SMS_199920034", // 'TemplateParam' => "{\"code\":\"123456\"}", 'TemplateParam' => "{\"code\":\"".$req['code']."\"}", ], ]) ->request(); $this->success('發送成功', $result->toArray()); } catch (ClientException $e) { $this->error('發送失敗',$e->getErrorMessage() . PHP_EOL); } catch (ServerException $e) { $this->error('發送失敗',$e->getErrorMessage() . PHP_EOL); } }