violetshih/taiwan-sms-laravel

Laravel包装库,用于台湾短信服务

dev-main 2024-02-06 08:46 UTC

This package is auto-updated.

Last update: 2024-09-06 09:56:10 UTC


README

可以自定义备用短信服务,当主要服务出现问题时,可以自动切换到备用发送服务

支持的短信商

  1. 三竹短信 Mitake https://sms.mitake.com.tw/common/index.jsp
  2. 短信王 kotsms https://kotsms.com.tw/index.php
  3. Every8d 互動資通 https://www.teamplus.tech/product/every8d-download/
  4. Infobip https://infobip.com/

安装步骤

  1. 安装软件包 $ composer require violetshih/taiwan-sms-laravel
  2. 复制配置 $ php artisan vendor:publish --provider="Violetshih\TaiwanSmsLaravel\TaiwanSmsServiceProvider"
  3. 查看配置 $ vim config/taiwan_sms.php
  4. 设置您的主要短信供应商(需先申请权限)和确认账户密码的ENV key
  5. 将账户密码设置到专安环境配置文件 $ vim .env

配置文件

路径:/configs/taiwan_sms.php

<?php
return [
    'primary' => 'every8d', // 主要 SMS 服務商,可填寫以下擇一 every8d, kotsms, mitake, infobip
    'failover' => '', // 次要(選填) 備援 SMS 服務商,可填寫以下擇一 every8d, kotsms, mitake, infobip
    'timeout' => 5, // 等待多久判定服務無回應,自動切換服務商或返回狀態
    'services' => [
        'every8d' => [
            'url' => env('EVERY8D_URL', 'http://biz3.every8d.com.tw/prepaid/API21/HTTP/sendSMS.ashx?UID=%s&PWD=%s&SB=%s&MSG=%s&DEST=%s'),
            'username' => env('EVERY8D_USERNAME'), // 將 key 複製到專案跟目錄的 .env 裡面,並加上您的帳號,例如:EVERY8D_USERNAME=example2022
            'password' => env('EVERY8D_PASSWORD'), // 將 key 複製到專案跟目錄的 .env 裡面,並加上您的密碼,例如:EVERY8D_USERNAME=password2022
        ],
        'kotsms' => [
            'url' => env('KOTSMS_URL', 'https://api.kotsms.com.tw/kotsmsapi-1.php?username=%s&password=%s&dstaddr=%s&smbody=%s&response='),
            'username' => env('KOTSMS_USERNAME'),
            'password' => env('KOTSMS_PASSWORD'),
        ],
        'infobip' => [
            'url' => env('INFOBIP_URL', 'https://vqlkm.api.infobip.com'),
            'username' => env('INFOBIP_USERNAME'),
            'password' => env('INFOBIP_PASSWORD'),
        ],
        'mitake' => [
            'url' => env('MITAKE_URL', 'https://sms.mitake.com.tw/b2c/mtk/SmSend?CharsetURL=UTF-8'),
            'username' => env('MITAKE_USERNAME'),
            'password' => env('MITAKE_PASSWORD'),
        ]
    ]
];

使用示例

$phone = '0988123123';
$text = '測試中文 Test ABC 123';

try {
    TaiwanSms::send($phone, $text);
    
} catch (\Exception $exception) {
    return redirect()->back()->with(['error' => $exception->getMessage()]);
}