php+laravel5.7(小程序,公众号,手机短信)模板消息推送上

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Wild_sir/article/details/97114064

php+laravel5.7(小程序,公众号,手机[阿里云]短信)模板消息推送上
1.做微信模板消息的我建议各位大佬去看看:https://www.easywechat.com/(表示我也用的这个)
2.手机短信我建议去看看:https://packagist.org/packages/overtrue/easy-sms(这个包比较方便)
3.做微信呢写一些东西太麻烦了为了方便在下载这个包:https://packagist.org/packages/overtrue/laravel-wechat(微信 SDK for Laravel)
4.对于手机短信我用的阿里云短信为了方便配置下载这个包:https://packagist.org/packages/aliyuncs/oss-sdk-php(文档有点变态哈全英文难受啊)
都composer完后在配置配置就可以进行下一步操作了:
阿里云短信例子:
Controller:

	<?php

namespace App\Modules\Api\Sms\Controllers;


use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use  App\Modules\Api\Sms\Services\SmsSendServices;


class SmsSendController extends Controller
{
    /**
     * @var SmsSendServices
     */
    protected $smsSendServices;

    /**
     * SmsSendController constructor.
     *
     * @param SmsSendServices $smsSendServices
     */
    public function __construct(SmsSendServices $smsSendServices)
    {
        $this->smsSendServices = $smsSendServices;
    }

    /**
     * @param Request $request
     *
     * @return \Illuminate\Http\JsonResponse
     */
    public function smsSend(Request $request)
    {
        $data = $request->all();
        $res  = $this->smsSendServices->send($data);
        if ($res == false) {
            return $this->failed('短信发送模板消息失败,数据错误');(这个是我封装的方法,这个可以不写或者随便写)
        }
    }

}

Services(这个我的模板写的很多,你么可以借鉴哟):

	<?php  
namespace App\Modules\Api\Sms\Services;


use App\Services\BaseService;
use Overtrue\EasySms\EasySms;
use Exception;

class SmsSendServices extends BaseService
{
    protected $easySms;

    public function __construct(EasySms $easySms)
    {
        $this->easySms = $easySms;
    }

    public function send($data)
    {
        $letterTemplate = $data['letterTemplate'] ?? '';
        if ($letterTemplate != '') {
            $res = $this->Dispose($data);
        } else {
            return $res = false;
        }
        if ($res == false) {
            return $res;
        }
        $data = $this->transmission($res);
        return $data;
    }

    /**
     * @param $data
     *
     * @return array|bool|mixed|string
     */
    private function Dispose($data)
    {
        $letterTemplate = $data['letterTemplate'];
        switch ($letterTemplate) {

            case 1:
                $res = $this->studentPay($data);
                break;

            case 2:
                $res = $this->schoolPay($data);
                break;
	   		......					

            default :
                $res = false;
                break;
        }
        return $res;
    }


    /**
     * @param $data
     *  letterTemplate = 1
     *  phoneStudent 学生电话
     *  pay_fee 实付金额
     *  class 班级(order_packages 表里 name + ' ' +driver_licence + '班')拼接一下
     *  status 1 非学生 2 学生
     *  school_name 学校名称(新增字段)
     *
     * @return array|string
     */
    protected function studentPay($data)
    {

        if ($data['status'] == 1) {
            $res = [
                'template' => '*****',(模板Id)
                'data'     => [
                    'name'    => $data['class'],
                    'feename' => number_format($data['pay_fee'] * 0.01, 2, '.', '') . '元',
                ]
            ];
        } elseif ($data['status'] == 2) {
            $res = [
                'template' => '***',(模板Id)
                'data'     => [
                    '***'    => $data['class'],
                    '***' => number_format($data['pay_fee'] * 0.01, 2, '.', '') . '元',
                ]
            ];
        }
        $phone['phone'] = $data['phoneStudent'];
        $message        = array_merge($phone, $res);
        return $message;
    }

    /**
     * @param $data
     *  letterTemplate = 2
     *  phoneSchool 代理人电话
     *  studentName 学生姓名
     *
     * @return array
     */
    protected function schoolPay($data)
    {
        $res            = [
            'template' => '*******',(模板id)
            'data'     => [
                '***' => $data['studentName'],
            ]
        ];
        $phone['phone'] = $data['phoneSchool'];
        $message        = array_merge($phone, $res);
        return $message;
    }
    /**
     * @param $data
     *  发送
     *
     * @return mixed
     */
    private function transmission($data)
    {
        $phone = $data['phone'];
        unset($data['phone']);
        try {
            $res = $this->easySms->send($phone, $data);
            if ($res == false) {
                return $this->baseFailed('短信发送模板消息失败,模板处理错误啦');(我封装的方法)
            }
            return $this->baseSucceed();
        } catch (Exception $e) {
            return $this->baseFailed('短信发送模板消息失败,模板处理错误啦');(我封装的方法)
        }

    }
}

这个时候就可以用发送短信了(路由自己随便写,方法可以借鉴)
等下回在给大家说微信的那边。

猜你喜欢

转载自blog.csdn.net/Wild_sir/article/details/97114064