Rumah > Artikel > rangka kerja php > Cara menggunakan Laravel untuk melaksanakan fungsi penghantaran dan penerimaan SMS
Cara menggunakan Laravel untuk melaksanakan fungsi penghantaran dan penerimaan SMS memerlukan contoh kod khusus
Laravel ialah rangka kerja PHP yang popular di mana pelbagai fungsi boleh dilaksanakan dengan mudah, termasuk menghantar dan menerima SMS. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Laravel untuk melaksanakan fungsi penghantaran dan penerimaan SMS, dan menyediakan contoh kod yang sepadan.
1. Pelaksanaan fungsi penghantaran SMS
Untuk menghantar SMS, anda perlu mengkonfigurasi pembekal perkhidmatan SMS terlebih dahulu. Pembekal perkhidmatan SMS biasa termasuk Alibaba Cloud, Tencent Cloud, dll. Di sini kami mengambil Alibaba Cloud SMS sebagai contoh.
Tambah konfigurasi berikut dalam fail .env:
ALIYUN_ACCESS_KEY_ID=your_access_key_id ALIYUN_ACCESS_KEY_SECRET=your_access_key_secret ALIYUN_SMS_SIGN_NAME=your_sms_sign_name ALIYUN_SMS_TEMPLATE_CODE=your_sms_template_code
Ganti your_access_key_id
dan your_access_key_secret
dengan Alibaba Cloud AccessKey ID dan AccessKey Secret gantikan your_sms_sign_name /code> dengan nama tandatangan SMS anda; gantikan <code>your_sms_template_code
dengan kod templat SMS anda. your_access_key_id
和your_access_key_secret
替换为你的阿里云的AccessKey ID和AccessKey Secret;将your_sms_sign_name
替换为你的短信签名名称;将your_sms_template_code
替换为你的短信模板代码。
在app/Http/Controllers目录下创建SmsController.php文件,并添加以下代码:
<?php namespace AppHttpControllers; use IlluminateHttpRequest; use AlibabaCloudClientAlibabaCloud; use AlibabaCloudClientExceptionClientException; use AlibabaCloudClientExceptionServerException; class SmsController extends Controller { public function sendSms(Request $request) { $phoneNumber = $request->input('phone_number'); $code = $request->input('code'); AlibabaCloud::accessKeyClient( config('app.aliyun_access_key_id'), config('app.aliyun_access_key_secret') ) ->regionId('cn-hangzhou') ->asDefaultClient(); try { $result = AlibabaCloud::rpc() ->product('Dysmsapi') ->host('dysmsapi.aliyuncs.com') ->version('2017-05-25') ->action('SendSms') ->method('POST') ->options([ 'query' => [ 'PhoneNumbers' => $phoneNumber, 'SignName' => config('app.aliyun_sms_sign_name'), 'TemplateCode' => config('app.aliyun_sms_template_code'), 'TemplateParam' => json_encode([ 'code' => $code, ]), ], ]) ->request(); return response()->json([ 'message' => 'SMS sent successfully', 'result' => $result->toArray(), ]); } catch (ClientException $e) { return response()->json([ 'message' => 'Client exception occurred', 'error' => $e->getErrorMessage(), ], 500); } catch (ServerException $e) { return response()->json([ 'message' => 'Server exception occurred', 'error' => $e->getErrorMessage(), ], 500); } } }
在routes/web.php文件中添加以下代码:
Route::post('/sms/send', 'SmsController@sendSms');
可以通过发送POST请求到/sms/send
路由来发送短信。请求参数中需要包含phone_number
和code
参数。例如,可以使用Postman工具发送以下请求:
POST /sms/send HTTP/1.1 Host: your-domain.com Content-Type: application/json Authorization: Bearer your-token Content-Length: 68 { "phone_number": "your-phone-number", "code": "123456" }
以上示例中,将your-domain.com
替换为你的域名,your-token
替换为你的认证令牌,your-phone-number
替换为要接收短信的手机号。
二、短信接收功能的实现
要实现短信接收功能,可以使用第三方短信平台提供的API接口。这里以云片网为例进行讲解。
首先需要在云片网上注册账号,然后登录并获取API key。
在app/Http/Controllers目录下创建SmsController.php文件,并添加以下代码:
<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesHttp; class SmsController extends Controller { public function receiveSms(Request $request) { $content = $request->input('content'); $phoneNumber = $request->input('phone_number'); // 处理短信内容的逻辑 // 返回响应 return response('success'); } }
在routes/web.php文件中添加以下代码:
Route::post('/sms/receive', 'SmsController@receiveSms');
可以通过发送POST请求到/sms/receive
路由来接收短信。请求参数中需要包含content
和phone_number
Buat fail SmsController.php dalam direktori app/Http/Controllers dan tambah kod berikut:
rrreee/sms/send
laluan menghantar mesej teks. Parameter permintaan perlu memasukkan parameter phone_number
dan code
. Sebagai contoh, anda boleh menggunakan alat Posmen untuk menghantar permintaan berikut: 🎜rrreee🎜Dalam contoh di atas, gantikan your-domain.com
dengan nama domain anda dan your-token
dengan token Pengesahan anda, gantikan /sms/ menerima
laluan Terima mesej teks. Parameter permintaan perlu memasukkan parameter kandungan
dan phone_number
. Logik pemprosesan kandungan SMS khusus perlu ditulis mengikut dokumen antara muka. 🎜🎜Sebagai contoh, kandungan mesej teks yang diterima boleh diproses dengan menghubungi antara muka API pihak ketiga. 🎜🎜Di atas ialah kaedah dan contoh kod khusus menggunakan rangka kerja Laravel untuk melaksanakan fungsi penghantaran dan penerimaan SMS. Anda boleh mengubah suai dan memanjangkannya mengikut keperluan sebenar anda. Harap ini membantu! 🎜Atas ialah kandungan terperinci Cara menggunakan Laravel untuk melaksanakan fungsi penghantaran dan penerimaan SMS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!