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 测试一下:

Laravel6 使用腾讯云短信-修改短信模板

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!