Laravel 簡訊擴充套件包 - 目前支援簡訊服務商:阿里雲 / 雲片網 / 騰訊雲 / 簡訊寶 / 賽郵雲 /SendCloud/ 互億無線(支援全網簡訊擴充套件)

LaravelHub發表於2019-05-26

SMS - 簡訊傳送,從未如此簡單。全網首款支援所有簡訊服務商,自由擴充套件,無縫對接。

  • GitHub: https://github.com/hongyukeji/laravel-sms

  • 該外掛已經在laravel開發的商城系統中進行使用, 配合laravel-settings 擴充套件外掛使用更安逸!

  • 特點:自動通過 templateCode(config/sms.php中templates預設對應的簡訊服務商呼叫標識,如:verify_code該標識表示呼叫簡訊驗證碼對應的模板CODE或文字內容) 查詢簡訊模板CODE或模板內容,傳送對應的簡訊,全網獨家。

  • 起源:開發商城系統時,需要傳送簡訊,每種簡訊服務商支援傳送格式不一樣,有的傳模板code,有的直接傳中文模板,找遍了GitHub沒有能讓我滿意的簡訊擴充套件外掛,為了統一簡訊呼叫方式,故而開發此款外掛,方便你我他!

  • 使用場景: 如果你的專案中簡訊是固定用一種,確認是採用模板CODE還是文字內容,則無需該外掛, 如果你的專案需要多種簡訊服務商, 同時呼叫簡訊時候又想根據簡訊服務商自動去呼叫簡訊對應的模板code或文字內容, 則本外掛為首選

安裝:

composer require hongyukeji/laravel-sms

釋出配置檔案:

php artisan vendor:publish --provider="Hongyukeji\LaravelSms\LaravelSmsServiceProvider"

使用方式:

$sms = sms('13952101395', 'verify_code', ['code' => '1234']);
print_r($sms);

上述程式碼可以看出來使用方式非常So Easy!使用助手函式sms,第一個引數傳入手機號,第二個引數傳入簡訊sms.config配置檔案中的templates預設的模板編號,第三個引數填寫對應的簡訊模板引數。簡訊sms.config配置檔案中driver為使用的簡訊服務商。其餘不懂的可以看程式碼,相當簡單,卻能實現如此方便的功能,如果您有好的程式碼優化建議,可以在GitHub中給我留言,我會及時關注的。

評論區有位小夥伴沒理解到位該外掛的使用場景, overtrue/easy-sms 如果系統使用者通過後臺切換了簡訊服務商,如原有簡訊服務商是阿里簡訊, 該簡訊呼叫方式為:手機號+模板CODE+引數, 切換至簡訊寶簡訊: 手機號+文字內容+引數,不可能在系統裡面每個簡訊呼叫的地方都去寫上全部簡訊服務商的呼叫方式, 本外掛可以在呼叫方式不改變的情況下, 相容各個簡訊服務商, 後臺任意切換簡訊服務商, 簡訊呼叫寫法就一種, 全系統任何地方都只有一種呼叫方式. 這位小夥伴如果你做過平臺系統, 使用者可以後臺自動切換簡訊服務商的那種功能, 你或許就能明白該款外掛的好處了, overtrue/easy-sms 這個擴充套件包實現的功能, 和本人寫的hongyukeji/sms這個擴充套件包是一樣的,只能單純的呼叫傳送簡訊, 不能做到智慧化嵌入各類laravel開發的應用中, hongyukeji/laravel-sms就是為了在laravel中實現, 一種簡訊呼叫方式, 可以做到隨意切換簡訊服務商, 和不必去考慮每個呼叫的地方是傳模板CODE還是文字內容而誕生的擴充套件外掛

  • 特別提醒: overtrue/easy-sms 該款簡訊擴充套件外掛, 傳送簡訊第二個引數為陣列, 陣列裡面分為content(文字內容)和template(模板 ID), 本人開發平臺系統時候, 簡訊傳參時候不可能再去判斷是哪個服務商, 是傳模板code還是傳模板編碼, 所以統一把content(文字內容)和template(模板 ID)合為一個引數,由[hongyukeji/laravel-sms]外掛自行去識別是模板code還是簡訊內容,下面是程式碼示例:
    // get_sms_code()該助手函式配合config/sms.php實現了只需要傳參預設好的templates中標識(如: verify_code)就可以自動呼叫簡訊服務商對應的content(文字內容)或template(模板 ID) 
    if (!function_exists('get_sms_code')) {
    /**
     * 根據key獲取簡訊模板Code或文字內容
     *
     * @param $key
     * @return \Illuminate\Config\Repository|mixed
     */
    function get_sms_code($key)
    {
        $gateway = config('sms.driver');
        return config("sms.templates.{$gateway}." . $key);
    }
    }
    // config/sms.php
    'templates' => [
        'yunpian' => [
            'verify_code' => env('SMS_YUNPIAN_VERIFICATION_CODE'),
            'user_account_pay' => '',
            'user_order_deliver_goods' => '',
            'seller_new_order' => '',
            'seller_order_account_pay' => '',
        ],
        'duanxinbao' =>
            [
                'verify_code' => '您的驗證碼是%s。有效期為15分鐘,請儘快驗證!',
                'user_account_pay' => '已經收到您的訂單,訂單編號:%s,我們將盡快給您發貨。',
                'user_order_deliver_goods' => '您的訂單已發貨,訂單編號:%s,收貨人:%s,聯絡電話:%s,收貨地址:%s,請注意查收!',
                'seller_new_order' => '您有一條新訂單,訂單編號:%s,請注意檢視。',
                'seller_order_account_pay' => '客戶已付款,訂單編號:%s,收貨人:%s,聯絡電話:%s,訂單金額:%s。',
            ],
        // Other...
    ],
本作品採用《CC 協議》,轉載必須註明作者和本文連結

Shadow -不忘初心方得始終

相關文章