Laravel6 使用腾讯云短信-删除短信模板 
                                                    
                        
                    
                    
  
                    
                    Laravel6 使用腾讯云短信
删除短信模板
SmsTemplateRequestModel.php增加deleteSmsTemplate方法
/* app/Http/Requests/Api/SmsTemplateRequest.php */
<?php
namespace App\Http\Models\TencentCloud;
use TencentCloud\Sms\V20190711\Models\AddSmsSignRequest;
use TencentCloud\Sms\V20190711\Models\ModifySmsSignRequest;
use TencentCloud\Sms\V20190711\Models\DeleteSmsTemplateRequest;
class SmsTemplateRequest
{
    ·
    ·
    ·
    /**
     * 删除短信模板 DeleteSmsTemplate
     *
     * @param integer $templateId 待删除的模板 ID。
     * @return void
     */
    public function deleteSmsTemplate(int $templateId)
    {
        $req = new DeleteSmsTemplateRequest();
        $req->TemplateId = $templateId;
        return $req;
    }
}
短信签名验证类增加删除签名的验证规则
/* app/Http/Requests/Api/SmsSignRequest.php */
<?php
namespace App\Http\Requests\Api;
use Illuminate\Http\Request;
class SmsSignRequest extends FormRequest
{
    ·
    ·
    ·
    protected $deleteTemplateRules = [
        'templateId' => 'required|integer'
    ];
    /**
     * 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;
            case 'DELETE':
                $rules = $this->deleteTemplateRules;
                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 deleteTemplate(SmsTemplateRequest $request,SmsTemplateRequestModel $SmsTemplateRequestModel)
    {
        try {
            $sms = app('tencentcloudSms');
            $req = $SmsTemplateRequestModel->deleteSmsTemplate($request->templateId);
            // 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的
            // 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应
            $resp = $sms->DeleteSmsTemplate($req);
            list($DeleteTemplateStatus, $RequestId) = array_values(json_decode($resp->toJsonString(), true));
            if ($DeleteTemplateStatus['DeleteTime'] && $DeleteTemplateStatus['DeleteStatus']) {
                return response()->json([
                    'key' => $RequestId,
                    'code' => 0,
                    'message' => 'Ok',
                    'deleteTime' => $DeleteTemplateStatus['DeleteTime'],
                    'deleteStatus' => $DeleteTemplateStatus['DeleteStatus']
                ]);
            }
        } 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');
    // 删除短信模板
    Route::delete('smsTemplate', 'SmsTemplateController@deleteTemplate')
    ->name('sms.template.delete');
});
测试
通过 PostMan 测试一下:

本作品采用《CC 协议》,转载必须注明作者和本文链接
          
                    
                    
          
          
                关于 LearnKu
              
                    
                    
                    
 
推荐文章: