Laravel6 使用腾讯云短信-修改短信模板
Laravel6 使用腾讯云短信
修改短信模板
SmsTemplateRequestModel.php
增加modifySmsTemplate
方法
/* app/Http/Requests/Api/SmsTemplateRequest.php */
<?php
namespace App\Http\Models\TencentCloud;
use TencentCloud\Sms\V20190711\Models\AddSmsTemplateRequest;
use TencentCloud\Sms\V20190711\Models\ModifySmsTemplateRequest;
class SmsTemplateRequest
{
·
·
·
/**
* 修改短信模板 ModifySmsTemplate
*
* @param integer $templateId 待修改的模板的模板 ID。
* @param String $templateContent 新的模板内容。
* @param String $templateName 新的模板名称。
* @param integer $smsType 短信类型,0表示普通短信, 1表示营销短信。
* @param integer $international 是否国际/港澳台短信:
* 0:表示国内短信。
* 1:表示国际/港澳台短信。
* @param String $remark 模板备注,例如申请原因,使用场景等。
* @return void
*/
public function modifySmsTemplate(int $templateId, String $templateContent = '',String $templateName = '', int $smsType = 0, int $international = 0, String $remark = '')
{
// 实例化一个 sms 添加签名请求对象,每个接口都会对应一个request对象。
$req = new ModifySmsTemplateRequest();
$req->TemplateId = $templateId;
$req->TemplateContent = $templateContent;
$req->TemplateName = $templateName;
$req->SmsType = $smsType;
$req->International = $international;
$req->Remark = $remark;
return $req;
}
}
短信模板验证类增加修改模板的验证规则
/* app/Http/Requests/Api/SmsTemplateRequest.php */
<?php
namespace App\Http\Requests\Api;
use Illuminate\Http\Request;
class SmsTemplateRequest extends FormRequest
{
·
·
·
protected $modifyTemplateRules = [
'templateId' => 'required|integer',
'templateContent' => 'required|String',
'templateName' => 'required|String',
'smsType' => 'required|integer',
'international' => 'required|integer',
'remark' => 'required|String'
];
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules(Request $request)
{
switch ($request->method) {
case 'POST':
$rules = $this->addTemplateRules;
break;
case 'PUT':
$rules = $this->modifyTemplateRules;
break;
default:
$rules = $this->addTemplateRules;
break;
}
return $rules;
}
}
SmsTemplateController.php
增加修改模板方法
/* app/Http/Controllers/Api/SmsTemplateController.php */
<?php
namespace App\Http\Controllers\Api;
use App\Http\Requests\Api\SmsTemplateRequest;
use App\Http\Models\TencentCloud\SmsTemplateRequest as SmsTemplateRequestModel;
use TencentCloud\Common\Exception\TencentCloudSDKException;
class SmsTemplateController extends Controller
{
·
·
·
public function modifyTemplate(SmsTemplateRequest $request,SmsTemplateRequestModel $SmsTemplateRequestModel)
{
try {
$sms = app('tencentcloudSms');
$req = $SmsTemplateRequestModel->modifySmsTemplate($request->templateId, $request->templateContent, $request->templateName, $request->smsType, $request->international, $request->remark);
// 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的
// 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应
$resp = $sms->ModifySmsTemplate($req);
list($ModifyTemplateStatus, $RequestId) = array_values(json_decode($resp->toJsonString(), true));
if ($ModifyTemplateStatus['TemplateId']) {
return response()->json([
'key' => $RequestId,
'code' => 0,
'message' => 'Ok',
'templateId' => $ModifyTemplateStatus['TemplateId']
]);
}
} catch (TencentCloudSDKException $e) {
return response()->json([
'key' => $e->getRequestId(),
'code' => $e->getErrorCode(),
'message' => $e->getMessage()
])->setStatusCode(500);
}
}
}
新增路由
/* routes/api.php */
<?php
use Illuminate\Http\Request;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::prefix('v1')->namespace('Api')->name('api.v1.')->group(function () {
// 添加短信模板
Route::post('smsTemplate', 'SmsTemplateController@addTemplate')
->name('sms.template.add');
// 修改短信模板
Route::put('smsTemplate', 'SmsTemplateController@modifyTemplate')
->name('sms.template.modify');
});
测试
通过 PostMan 测试一下:
本作品采用《CC 协议》,转载必须注明作者和本文链接